मैं एक आईफोन गेम बना रहा हूं। मैं आवंटित या रखी गई सभी वस्तुओं को छोड़ना चाहता हूं। dealloc
फ़ंक्शन में मैं ऐसी सभी ऑब्जेक्ट्स जारी कर रहा हूं, लेकिन फिर मुझे एहसास हुआ कि कभी-कभी मैं ऑब्जेक्ट्स को रिलीज़ करता हूं जब उन्हें अभी तक आवंटित नहीं किया जाता है। तो मुझे लगा कि मुझे यह जांचने की ज़रूरत है कि क्या retainCount
शून्य से अधिक है या इसे रिलीज़ करने से पहले नहीं।मैं कितनी बार आवंटित या बनाए रखा ऑब्जेक्ट जारी करता हूं?
मेरा प्रश्न है:
मैं सिर्फ जाँच करें retainCount
शून्य से अधिक है, तो और फिर उसे छोड़ दें?
if([bg retainCount]!=0)
{
[bg release];
}
या
मैं अपने retainCount
while([bg retainCount]!=0)
{
[bg release];
}
आपकी मदद के लिए धन्यवाद!
'किसी भी वस्तु का retainCount' ** आपके व्यवसाय से कोई भी है **। यह एक डीबगिंग सहायता के रूप में है, लेकिन कुछ भी नहीं। उत्पादन कोड कभी भी इस पर निर्भर नहीं होना चाहिए। – Sven
Btw - नहीं है कि यह कोड सही बनाता है - लेकिन परिभाषा के अनुसार 'retainCount' 0 वापस कभी नहीं कर सकते हैं क्योंकि वस्तु पहले से ही समय है कि ..... – bbum
भी होता है से पुनः आवंटित की जाती किया गया है, का निर्माण और उपयोग करने का प्रयास" विश्लेषण करें "(यानी क्लैंग विश्लेषक)। यह आपको बता सकता है कि आप कहां गलत हो रहे हैं। –