मेरे पास आईओएस में स्वयं ब्लॉक में मजबूत और कमजोर संदर्भों के बारे में एक प्रश्न है। मैं जानता हूँ कि उचित तरीके से एक ब्लॉक के अंदर स्वयं को संदर्भित करने के इस तरह ब्लॉक के अंदर है कि कमजोर संदर्भ के लिए एक मजबूत संदर्भ, ब्लॉक के बाहर एक कमजोर संदर्भ बनाने के लिए है, और उसके बाद:आईओएस ब्लॉक और स्वयं के लिए मजबूत/कमजोर संदर्भ
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0),^{
typeof(self) strongSelf = weakSelf;
NSLog(@"%@", strongSelf.someProperty);
});
हालांकि, अगर ऐसा होता आपके पास घोंसला वाले ब्लॉक हैं? क्या संदर्भों का एक सेट पर्याप्त है? या क्या आपको प्रत्येक ब्लॉक के लिए एक नया सेट चाहिए? उदाहरण के लिए, निम्नलिखित में से कौन सा सही है?
यह:
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0),^{
typeof(self) strongSelf = weakSelf;
NSLog(@"%@", strongSelf.someProperty);
dispatch_async(dispatch_get_main_queue(),^{
strongSelf.view.frame = CGRectZero;
});
});
या इस:
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0),^{
typeof(self) strongSelf = weakSelf;
NSLog(@"%@", strongSelf.someProperty);
__weak typeof(strongSelf) weakSelf1 = strongSelf;
dispatch_async(dispatch_get_main_queue(),^{
typeof(strongSelf) strongSelf1 = weakSelf1;
strongSelf1.view.frame = CGRectZero;
});
});
कोई भी जानकारी या स्पष्टीकरण बहुत सराहना कर रहा है!
हमें ब्लॉक के अंदर कमज़ोर के लिए एक मजबूत संदर्भ क्यों बनाना चाहिए? – BergP