typedef void (^MyResponseHandler) (NSError *error);
@property (strong, nonatomic) MyResponseHandler ivarResponseHandler;
synthesize ivarResponseHandler = _ivarResponseHandler;
- (void)myMethod:(MyResponseHandler)responseHandler
{
self.ivarResponseHandler = responseHandler;
...
}
@property
सही माध्यम इवर लिए काम है? मुझे पता है कि मैन्युअल मेमोरी मैनेजमेंट में आपको यह सुनिश्चित करने के लिए self.ivarResponseHandler = [responseHandler copy];
की आवश्यकता होगी ताकि ब्लॉक को ढेर से ढेर तक कॉपी किया गया हो। लेकिन सत्र 322 देखना - डब्ल्यूडब्ल्यूडीसी 2011 से गहराई (मिनट 25) में उद्देश्य-सी अग्रिम, स्पीकर का कहना है कि एआरसी स्वचालित रूप से एक ब्लॉक को एक ivar के असाइनमेंट को संभालता है। मैं बस सुनिश्चित करना चाहता था।
सीधे सवाल का जवाब नहीं देता है। लेकिन मुझे लगता है कि मैं अब इस कोड का उपयोग अपने कोड में करूँगा। – bearMountain
(दो साल बाद) मैंने अभी भी बहुत ही समान प्रश्न पूछा है जो आपके उत्तर देता है: [क्या मुझे अभी भी एआरसी के तहत ब्लॉक को ब्लॉक/ब्लॉक करना चाहिए?] (Http://stackoverflow.com/questions/23334863)। उत्तर का सामान्य निष्कर्ष यह है कि ब्लॉक के लिए गुण लिखने के लिए फॉर्म, यहां इस स्वीकृत उत्तर में, वर्तमान दिनों में भी बिल्कुल सही और सही रूप है। –