2009-06-24 11 views
5

पर कॉल किया गया है, तो मेरे पास 'आइटम' (250 प्रविष्टियों तक) की एक बड़ी सूची है जो लगातार बदल रही है। सूची UITableView में प्रदर्शित की जा रही है।UITableView ड्राइंग समस्याएं जब रीलोडडेटा को

मेरे पास एक मतदान धागा है जो कुछ नई प्रविष्टियों को डाउनलोड करेगा और उन्हें SQLite डीबी में डालेंगे।

जब नई प्रविष्टियां आती हैं, तो मैं अपने डेटा सेट को अपडेट करने के लिए डेटा स्रोत ऑब्जेक्ट को कॉल करता हूं, जो एक SQL क्वेरी चलाता है और प्रविष्टियों की एक नई सरणी देता है।

यह पूरा होने के बाद, मैं तालिका दृश्य पर -reloadData को कॉल करता हूं। जब ऐसा होता है, तो 10 मामलों में से 7 में से, तालिका दृश्य रिक्त हो जाता है (कोई कक्ष प्रदर्शित नहीं होता है और केवल तालिका का पृष्ठभूमि रंग दृश्यमान होता है) जब तक -reloadData कॉल नहीं किया जाता है। तालिका दृश्य को स्पर्श करना (स्क्रॉल करना, सेल चुनना, कुछ भी जो रेड्रो को मजबूर करेगा) इसे फिर से दिखाई देगा।

तालिका दृश्य, इसका आईबीओटलेट पॉइंटर और वर्तमान में प्रदर्शित कोशिकाएं रिक्त ड्राइंग बग को देखते समय मान्य हैं, इसलिए मुझे पूरा विश्वास है कि उन्हें रिहा नहीं किया जा रहा है।

मैं इसे कुछ दिनों के लिए डीबग करने का प्रयास कर रहा हूं और यह वास्तव में मुझे दीवार को ड्राइव करना शुरू कर रहा है।

इस पर कोई भी मदद भयानक होगी, धन्यवाद।

उत्तर

19

यदि आप [ myTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO] करते हैं तो यह मदद करेगा?

यदि आपने मुख्य धागे से अपने जीयूआई अपडेट को क्रियान्वित नहीं किया है तो आप जिस समस्या का उल्लेख करते हैं, वह उत्पन्न हो सकती है।

+1

दोस्त, आपने मेरी जान बचाई। मैं एक पुल या कुछ कूदने वाला था ... धन्यवाद! – Jasarien