मेरे पास एक ऐसा फ़ंक्शन है जो इंटरनेट से कनेक्ट होता है और फिर तालिका में सेल्स को रीफ्रेश करता है।UITableView reloadData धीमा है
मेरे समारोह है:
- (void) updateMethod
{
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
queue.name = @"Data request queue";
[queue addOperationWithBlock:^{
//neither of these delay the responsiveness of the table
[columnArrayBackground removeAllObjects];
[self getColumnDataBackground];
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
for (int i=0; i < 6; i++) {
columnArray[i] = columnArrayBackground[i];
};
//THIS ONE LINE CAUSES DELAYS
[homeTable reloadData];
}];
}];
}
सब कुछ [homeTable reloadData] के अलावा सुपर तेजी से है। जब मैं इसे टिप्पणी करता हूं, तो मुझे त्वरित प्रतिक्रिया मिलती है। जब मैं इसे अपूर्ण करता हूं, तो मेरी सेल प्रतिक्रिया कभी-कभी कुछ सेकंड तक लगी है!
मेरा अन्य रीलोडडाटा कॉल मेरे ऐप में देरी नहीं करता है। क्या मैं NSOperationQueue को सही ढंग से कार्यान्वित नहीं कर रहा हूं?
क्या आप केवल दृश्यमान कोशिकाओं को पुनः लोड करने का प्रयास कर सकते हैं? यदि उपयोगकर्ता डेटा डाउन होने से पहले आपका डेटा स्रोत अपडेट कर दिया गया है, तो यह तेज़ हो सकता है यानी [homeTable reloadRowsAtIndexPaths: [homeTable indexPathsForVisibleRows]] – Max
तालिका दृश्य प्रतिनिधि विधियां दिखाएं। 'GetColumnDataBackground' क्या करता है? आपको कैसे पता चलेगा कि यह 'देरी' कर रहा है? – Wain