2011-11-16 7 views
9

बनाता है यहाँ मेरी कोड है:UIAlertView पृष्ठभूमि धागे से और कोई प्रतिनिधि के साथ दिखाया गया EXC_BAD_ACCESS

#ifdef DEBUG 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"ERROR" message:@"JSON Parsing Error" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alertView show]; 
    [alertView release]; 
#endif 

इस कोड को एक पृष्ठभूमि धागा (पार्स के लिए जिम्मेदार) में निष्पादित किया जाता है, और त्रुटि केवल हर दूसरे समय होता है। यहां कोई समस्या क्या है?

उत्तर

17

पृष्ठभूमि धागे से यूआई के साथ गड़बड़ न करें। एक विधि बनाएं और मुख्य थ्रेड पर उस विधि को कॉल करें:

[someObject performSelectorOnMainThread:@selector(showDebug:) 
          withObject:@"JSON Parsing Error" 
          waitUntilDone:YES]; 
+0

सही जवाब के रूप में जो हल किया गया था –

2

आपको यूआई कोड को अलग थ्रेड में निष्पादित नहीं करना चाहिए।

आपके आवेदन एक ग्राफिकल यूजर इंटरफेस है, यह कि आप उपयोगकर्ता के संबंधित घटनाओं को प्राप्त करने और अपने आवेदन की मुख्य थ्रेड से इंटरफ़ेस अद्यतन आरंभ की सिफारिश की है। यह दृष्टिकोण उपयोगकर्ता घटनाओं को संभालने और ड्राइंग विंडो सामग्री से जुड़े सिंक्रनाइज़ेशन समस्याओं से बचने में मदद करता है। कोको जैसे कुछ ढांचे, आमतौर पर को इस व्यवहार की आवश्यकता होती है, लेकिन उन लोगों के लिए भी, जो इस धागे पर व्यवहार को रखते हुए आपके उपयोगकर्ता इंटरफ़ेस को प्रबंधित करने के लिए तर्क को सरल बनाने का लाभ है।

Threads and Your User Interface

मैं आईओएस 6.0 में समस्या हुई
संबंधित मुद्दे