2011-08-25 12 views
5

मेरे पास एक तरीका है जो CGPath देता है और विश्लेषक चेतावनियां उत्पन्न कर रहा है। प्रोटोकॉल में विधि घोषित की गई है।मुझे इस स्मृति चेतावनी से कैसे बचना चाहिए?

"किसी वस्तु की संभावित रिसाव लाइन 47 पर आवंटित और 'पथ' में संग्रहीत":

- (CGPathRef)createPathForBounds:(CGRect)bounds key:(NSString *)key; 
{ 
    if ([key isEqualToString:OvalColumn]) 
    { 
     CGPathRef path = CGPathCreateWithEllipseInRect(bounds, NULL); 
     return path; 
    } 

    return NULL; 
} 

यहां उदाहरण के उपयोग है कि है यहाँ एक उदाहरण कार्यान्वयन कि चेतावनी पैदा कर रहा है है चेतावनी, "एक वस्तु का संदर्भ गिनती कॉल करने वाले को इस बिंदु पर स्वामित्व में नहीं है का गलत घटती" पैदा करने

CGPathRef path = [self.delegate createPathForBounds:bounds key:someKey]; 

// Use the path to do some drawing 

CGRelease(path); 

मेरे स्मृति प्रबंधन correc है टी; मैं अपने प्रोटोकॉल विधि से CGPath को बरकरार रख रहा हूं और मैं इसे कॉलिंग ब्लॉक में रिलीज़ कर रहा हूं, इसलिए मुझे पता है कि चेतावनियों को अनदेखा किया जा सकता है, लेकिन मैं उन्हें पूरी तरह से हटाना चाहता हूं।

क्या मुझे एक नामकरण सम्मेलन याद आ रहा है जो विश्लेषक को खुश कर देगा? प्रोटोकॉल में कार्यों को परिभाषित किया जा सकता है? काम को उप-वर्गीकरण कैसे करेगा?

+1

क्या आप शायद आपको प्राप्त होने वाली चेतावनी के शब्द का खुलासा कर सकते हैं, या हमें अनुमान लगाना चाहिए? –

+0

मेरी माफ़ी। अपडेट किया गया। – kubi

+0

क्या होता है यदि आप पथ के लिए अपनी विधि का नाम बदलते हैं: कुंजी: ?? –

उत्तर

5

- (CGPathRef)newPathForBounds:(CGRect)bounds key:(NSString *)key

विषय पर एक विस्तृत टिप्पणी here

वैकल्पिक रूप से, आप विशेषता cf_returns_retained उपयोग करने के लिए चुन सकते थे पाया जा सकता है, लेकिन यह सबसे अच्छा (IMO) के पक्ष में नामकरण रिवाजों का है।

+0

सुंदर। हिंडसाइट में इतना स्पष्ट है। – kubi

+0

मुझे नहीं पता कि उसे क्यों वोट दिया गया था। यह बिल्कुल सही जवाब है। विश्लेषक विधि नामकरण सम्मेलनों से काम कर रहा है। नाम को "newPathForBounds" में बदलना विश्लेषक (और इसका उपयोग करने वाला कोई भी डेवलपर) बताता है कि यह विधि क्या कर रही है - और आपको दूसरे छोर को बाहर निकालने के लिए एक बनाए रखा ऑब्जेक्ट की अपेक्षा करनी चाहिए। – Steve

+0

मैंने अभी माना है कि फाउंडेशन ऑब्जेक्ट्स लौटने के तरीके फाउंडेशन नामकरण सम्मेलनों का उपयोग करना था। मुझे यह भी नहीं पता कि यह एक कम वोट क्यों मिला। – kubi

संबंधित मुद्दे