ReactiveCocoa में @weakify
और @strongify को बनाए रखने से रोकने के लिए मैक्रो है। मेरी समझ से @weakify
ऐसा कुछ करें जो मैं आमतौर पर करता हूं जो ब्लॉक में उपयोग करने के लिए __weak
संदर्भ बनाता है, लेकिन @strongify
के बारे में क्या है?@strongify
मुझे ब्लॉक में इसे फिर से मजबूत करने की आवश्यकता क्यों है?
@weakify(self);
[RACObserve(self, username) subscribeNext:^(NSString *username) {
@strongify(self);
[self validateUsername];
}];
आपको जो स्थिति आपने पोस्ट की है उस स्थिति में ब्लॉक के अंदर फिर से _strong_ संदर्भ बनाने की आवश्यकता नहीं है, इससे कोई फर्क नहीं पड़ता - लेकिन यदि आप एक ही 'स्वयं' ऑब्जेक्ट में कई बार संदर्भित करेंगे और आप चाहते हैं यह सुनिश्चित करने के लिए कि जब तक ब्लॉक अपने दायरे से बाहर नहीं हो जाता तब तक 'स्वयं' मान्य होता है (इसलिए आपका ब्लॉक आपके 'स्वयं' पर आधा काम नहीं करेगा), आपको इसे _strong_ प्राप्त करने की आवश्यकता है। – holex