पर विचार करें:संपत्ति कॉपी और Block_copy (myBlock)/[myBlock प्रतिलिपि]
typedef void (^select_block_t)(UIView *) ;
(1) @property (copy, nonatomic) select_block_t myBlockProperty ;
(2) @property (strong, nonatomic) select_block_t myBlockProperty ;
(3) @property (assign, nonatomic) select_block_t myBlockProperty ;
और:
(A) self.myBlockProperty = ^(UIView *) {NSLog(@"Hi");} ;
(B) self.myBlockProperty = [^(UIView *) {NSLog(@"Hi");} copy] ;
मैं समझने के लिए जो संपत्ति घोषणा मैप करने के लिए सही तरीका है कोशिश कर रहा हूँ, जिसके साथ ब्लॉक प्रति अर्थ विज्ञान
मैं उदाहरण S.O. पर here देखा है कि एहसान होगा [1: बी]
012,लेकिन फिर मैं उलझन में हूं कि 'कॉपी' ऑपरेशन कितना अनावश्यक है। मेरी सीमित समझ यह है कि [1: ए] सही होना चाहिए, क्योंकि मुझे ब्लॉक को एक बार कॉपी करने की आवश्यकता है जब मैं संपत्ति को असाइन करता हूं, एक बार ब्लॉक निर्माण पर नहीं और फिर एक बार संपत्ति असाइनमेंट समय पर।
[3: बी] मेरे तर्क के अनुसार भी समझ में आएगा। तो, मैं गलतफहमी क्या कर रहा हूं?
रुको, बस अपना टैग _automatic-ref-counting_ देखा, क्या आप एआरसी का उपयोग कर रहे हैं? – joerick
हां, मैं एआरसी का उपयोग कर रहा हूं। – verec
@verec मैंने अपना जवाब अपडेट कर दिया है। अगर आपको कोई प्रश्न है तो मुझे बताएं, मुझे यकीन नहीं है कि मैं कितना स्पष्ट हूं! – joerick