2011-08-23 7 views
6

मैं वेब सेवाओं का उपयोग करके चैट ऐप बना रहा हूं। यहां मैं वेब सेवाओं को कॉल करने जा रहा हूं और संदेश प्राप्त करने के बाद मुझे उन्हें एक टेबल व्यू में दिखाना है जो भी मैं भेजता हूं, तालिका दृश्य में भी दिखाया जाना चाहिए। इसके लिए मैंने ऊपर UIText फ़ील्ड (ऊपरी तरफ) तालिका दृश्य रखा है और जो भी मैं & टाइप करता हूं, तालिका में भेजें बटन संदेश दिखाता है और हर 30 सेकंड के बाद मैं कॉलिंग संदेश सेवा प्राप्त करता हूं (इसके लिए मैंने टाइमर के साथ धागा का उपयोग किया) और संदेश प्राप्त करने के बाद सर्वर रीलोडडाटा तालिका दृश्य में सभी डेटा शो को कॉल करता है, जब कुंजीपटल दिखाई नहीं देता है, लेकिन जब कीबोर्ड अपवादित होता है और सर्वर को फिर से लोड करते समय सर्वर प्रतिक्रिया के लिए प्रतीक्षा करता है तो मेरे ऐप्स क्रैश हो जाते हैं और निम्न त्रुटि संदेश देते हैं।वेबट्री थ्रेडलॉक

void _WebThreadLockFromAnyThread(bool), 0xc849490: Obtaining the web lock from a thread other than the main thread or the web thread. UIKit should not be called from a secondary thread. 
bool _WebTryThreadLock(bool), 0xc849490: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now. 

उत्तर

19

मेरे समस्या का समाधान मैं द्वितीय थ्रेड के माध्यम से तालिका दृश्य में डेटा को फिर से लोड करने की कोशिश कर रहा था।

इसलिए यहाँ मैं

[self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:NO]; And My problem is solved 
4

मैं इस समस्या से पहले आप, क्योंकि यह की कोशिश एक दृश्य लोड जबकि कुंजीपटल अभी भी दिखाई दे रहा है पाठ फ़ील्ड के लिए कुंजीपटल इस्तीफा देने के लिए .. की जरूरत थी।

[thetextfield resignFirstResponder]; 
+0

क्या किया अब मेरी समस्या का समाधान मैं द्वितीय थ्रेड के माध्यम से तालिका दृश्य में डेटा को फिर से लोड करने के लिए कोशिश कर रहा था है लेकिन अब मैं का उपयोग \t \t [आत्म performSelectorOnMainThread: @selector (MyMethod) withObject: शून्य waitUntilDone: NO]; और मेरी समस्या हल हो गई है – Vijay