एक्सकोड में लीक्स इंस्ट्रूमेंट मुझे यहां एक मेमोरी रिसाव दिखाता है। मैंने प्रभावित लाइन पर टिप्पणी की है जो लीक्स शिकायत कर रही है। लेकिन मैं अपने स्मृति प्रबंधन में कोई त्रुटि दिखाई देती है ...यह कोड मेमोरी रिसाव का उत्पादन क्यों कर रहा है?
- (void)setupViewController {
MyViewController *myVC = [[MyViewController alloc] init];
UITabBarItem *tbi = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];
myVC.tabBarItem = tbi; // LEAK: 128 bytes
self.myViewController = myVC;
[myVC release];
[tbi release];
}
मेरा मतलब है ... TBI और myVC अंत में जारी है, और alloc संतुलित है। तो क्या गलत हुआ? मुझे यह नहीं मिला।
myVC की टैबबार संपत्ति को बनाए रखने के लिए परिभाषित एक संपत्ति होनी चाहिए। यदि आप ऐसा करते हैं, तो संपत्ति को सौंपा गया वस्तुओं का प्रतिधारण स्वचालित रूप से बनाए रखा जाएगा। – TechZen
अच्छी तरह से, लेकिन TabBarItem ऐप्पल से है, मुझसे नहीं ;-) मैंने अपने व्यू कंट्रोलर के लिए कोई टैब नहीं बनाया है। ऐप्पल ने किया यह स्मृति प्रबंधन नियमों के खिलाफ होगा यदि मैं मैन्युअल रूप से myVC.tabBarItem को छोड़ देता हूं क्योंकि ऐप्पल ऐसा करने के लिए भूल गया है, है ना? – dontWatchMyProfile
'tabBarItem'' retain' semantics वाला एक प्रॉपर्टी है। यह बहुत संभावना नहीं है कि सेटर में एक रिसाव है। –