मेरे पास एक तरीका है जो 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
को बरकरार रख रहा हूं और मैं इसे कॉलिंग ब्लॉक में रिलीज़ कर रहा हूं, इसलिए मुझे पता है कि चेतावनियों को अनदेखा किया जा सकता है, लेकिन मैं उन्हें पूरी तरह से हटाना चाहता हूं।
क्या मुझे एक नामकरण सम्मेलन याद आ रहा है जो विश्लेषक को खुश कर देगा? प्रोटोकॉल में कार्यों को परिभाषित किया जा सकता है? काम को उप-वर्गीकरण कैसे करेगा?
क्या आप शायद आपको प्राप्त होने वाली चेतावनी के शब्द का खुलासा कर सकते हैं, या हमें अनुमान लगाना चाहिए? –
मेरी माफ़ी। अपडेट किया गया। – kubi
क्या होता है यदि आप पथ के लिए अपनी विधि का नाम बदलते हैं: कुंजी: ?? –