के साथ dispatch_async का उपयोग करते समय EXC_BAD_ACCESS प्राप्त करना मेरे पास coredata में छवियां हैं जिन्हें मैं तालिका दृश्य के लिए आलसी लोड करने का प्रयास कर रहा हूं। प्रत्येक सेल उपलब्ध होने पर छवि को अपडेट करने के लिए संबंधित कोर डेटा इकाई के लिए पर्यवेक्षक का उपयोग करता है। इकाई में प्रासंगिक कोड इस प्रकार है:कोर डेटा
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// The heavy lifting seems to be during firing of the fault and accessing data,
// so i'm trying to do that in the background thread.
UIImage *i = [UIImage imageWithData:self.imageEntity.data];
// I now need to notify observers that the image is ready on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
[self willChangeValueForKey:@"image"];
image = i;
[self didChangeValueForKey:@"image"];
});
});
परियोजना एआरसी का उपयोग करता है, मैं किसी भी संकलक त्रुटि या चेतावनी नहीं मिल रहा है, और मैं जब मैं इसे एक तरह से जब तक मैं तेजी से स्क्रॉल काम करता है चलाने के लिए, और उसके बाद जब मैं i घोषित कर रहा हूं तो लाइन पर एक EXC_BAD_ACCESS।
मुझे यहां क्या याद आ रही है?
क्या आपने 'NSZombieEnabled' के साथ प्रयास किया था? – zoul
यदि आप dispatch_async का उपयोग नहीं कर रहे हैं तो क्या होगा? बस मुख्य धागे –
पर चलाएं NSZombie मेरे लिए कोई अतिरिक्त प्रकाश नहीं डाला है। अगर मैं dispatch_async नहीं करता हूं तो यह मुख्य थ्रेड को अवरुद्ध कर देगा और वास्तव में खराब तरीके से स्क्रॉल करेगा। – dizy