कभी-कभी मुझे यह पता लगाना पड़ता है कि कोई ऑब्जेक्ट वास्तव में जारी किया जाएगा या नहीं। मैं निश्चित रूप से उपकरण इस्तेमाल कर सकते हैं, लेकिन यह बहुत समय लगता है, और मैं वस्तुओं के लाखों लोगों में खोज करने के लिए है, तो मैं यह करने के लिए इस्तेमाल किया:क्या डीबगिंग के लिए 'रिलीज` ओवरराइड करना सुरक्षित है?
-(void)release {
NSLog(@"I'm released");
[super release];
}
लेकिन समस्या यह है: इस करना सुरक्षित है? जब मैं -(void)release
ओवरराइड करता हूं तो क्या मुझे कोई समस्या हो सकती है। इसके अलावा, क्या यह वास्तव में void
है? और क्या होगा यदि मैं वितरण के लिए अपना आवेदन तैयार करता हूं, लेकिन प्रति दुर्घटना में इसे छोड़ दें? या यह सिर्फ सुरक्षित है? धन्यवाद
"वास्तव में जारी" से आपका क्या मतलब है? क्या आपको लगता है कि कभी-कभी [foo रिलीज] रिलीज संदेश भेजने का कारण नहीं बनता है? – JeremyP
@ जेरेमीपी '[[[foo alloc] init] autorelease]; '?? –
मैं देखता हूं। आप देखना नहीं चाहते कि रिलीज विधि काम करती है, लेकिन अगर ऑब्जेक्ट कभी जारी हो जाता है। इसे अपने जीवनकाल में कई बार बनाए रखा और जारी किया जा सकता है, इसलिए रिलीज विधि को डीबग करना शायद उपयोगी नहीं है। आप शायद नीचे लॉरेन एटीम्बल के जवाब को देखना चाहते हैं। 'ऑनवे शून्य' के बारे में उल्लेख करने के लिए – JeremyP