का उपयोग करते समय ऑब्जेक्ट को कैसे रिलीज़ करें यह शायद स्मृति प्रबंधन के संबंध में एक नौसिखिया प्रश्न है।ब्लॉक कॉलबैक
उद्देश्य सी में कॉलबैक के रूप में ब्लॉक का उपयोग करते समय मैं ऑब्जेक्ट को कैसे जारी कर सकता हूं?
(अपडेट किया गया कोड)
@implementation ObjectWithCallback
- (void)dealloc {
[_completionHandler release];
[super dealloc];
}
- (void)doTaskWithCompletionHandler:(void(^)(void))handler {
_completionHandler = [handler copy];
// Start tasks...
}
- (void)tasksDone {
// Do callback block
_completionHandler();
// Delete reference to block
[_completionHandler release];
_completionHandler = nil;
}
// Use of the ObjectWithCallback
ObjectWithCallback *request = [[ObjectWithCallback alloc] init];
[request doTaskWithCompletionHandler:^(void){
// Callback called and task is ready.
}];
आप किस वस्तु को रिलीज़ करना चाहते हैं, और आप इसे ब्लॉक के भीतर क्यों नहीं छोड़ सकते? – Richard
आपको क्या लगता है कि आप ब्लॉक में ऑब्जेक्ट को रिलायंस नहीं कर सकते हैं? – bbum
वह 'अनुरोध' जारी करना चाहता है। – Caleb