हर बार जब मैं इस तरह की एक ब्लॉक के अंदर एक वैश्विक वर या संपत्ति का उपयोग करने के "इस ब्लॉक में दृढ़ता से कब्जा स्वयं एक बनाए रखने के चक्र के लिए नेतृत्व की संभावना है" इस तरहबचना संदेश
BOOL *iis = isItSaving;
id myself = self;
self.save = ^(){
if (iis == NO) {
[myself saveMyFile];
}
};
या Xcode शिकायत "दृढ़ता से इस ब्लॉक में स्वयं पर कब्जा करने के लिए एक चक्र को बनाए रखने के लिए नेतृत्व की संभावना है ...
यह भी BOOL चर के बारे में शिकायत?
ब्लॉक से पहले सब कुछ पुनः लोड करना एक लंगड़ा समाधान प्रतीत होता है।
क्या यह सही तरीके से है? क्या कोई सुरुचिपूर्ण तरीका है?
यह सामान बदसूरत है। मैं एआरसी का उपयोग कर रहा हूँ।
आदमी, यह नरक के रूप में बदसूरत है। सबकुछ फिर से शुरू करने के लिए ... धन्यवाद। – SpaceDog
@ मार्क आर्मरी हां, क्लैंग अधिक से अधिक मुद्दों को पकड़ता है। और यह सही है, संलग्न वस्तु का जीवनकाल कम से कम तब तक बढ़ाया जाना चाहिए जब तक कि ब्लॉक खत्म न हो जाए। संपादन ... –
@ निकोलईरुहे * "संलग्न वस्तु का जीवनकाल कम से कम तब तक बढ़ाया जाना चाहिए जब तक कि ब्लॉक खत्म नहीं हो जाता" * - अच्छा, मैंने पहली बार किसी भी कारण से नोटिस नहीं किया कि ब्लॉक के भीतर 'स्वयं' का मजबूत संदर्भ क्यों बना रहा है '__unsafe_unretained' का उपयोग करने के लिए बेहतर होगा, लेकिन अकेले वाक्यांश यह अविश्वसनीय रूप से स्पष्ट बनाता है। यदि आप चाहें तो अपने उत्तर में दो दृष्टिकोणों की तुलना करने के लायक भी हो सकते हैं। –