2012-01-29 19 views
7

मैंने URLForUbiquityContainerIdentifier: को मुख्य धागे के बाहर बुलाया जाना चाहिए या नहीं, इस बारे में बहुत सी विरोधाभासी जानकारी पढ़ी है। ऐप्पल के बहुत से दस्तावेज में वे हमेशा इस धागे को मुख्य धागे पर कॉल करते हैं। हालांकि, मैंने यह भी पढ़ा है कि यह संभव है कि इस विधि को कॉल करना महत्वपूर्ण समय के लिए अवरुद्ध हो सके।URLForUbiquityContainerIdentifier: मुख्य धागे के बाहर धागे में बुलाया जाना चाहिए?

सभी के विचार क्या हैं? इसे मुख्य धागे में बुलाएं और चिंता न करें या हां, हमेशा इस कॉल को किसी अन्य थ्रेड में बनाते हैं?

उत्तर

6

NSFileManager अवरुद्ध हो सकता है और मुख्य धागे की तुलना में एक अलग थ्रेड पर चलाने की अनुशंसा की जाती है।

http://oleb.net/blog/2011/11/ios5-tech-talk-michael-jurewitz-on-icloud-storage/

: यहाँ एक अलग धागा

dispatch_queue_t globalQueue = dispatch_get_global_queue(QUEUE_PRIORITY_DEFAULT, 0); 
dispatch_async(globalQueue, ^{ 
    NSFileManager *fileManager = [[NSFileManager alloc] init]; 
    NSURL *ubiquityContainer = [fileManager URLForUbiquityContainerIdentifier:nil]; 

    dispatch_queue_t mainQueue = dispatch_get_main_queue(); 
    dispatch_async(mainQueue, ^{ 
     [self updateWithUbiquityContainer:ubiquityContainer]; 
    }); 
}); 

यह एक बढ़िया यहाँ स्थित लेख से है पर iCloud भंडारण का उपयोग करने के ग्रांड सेंट्रल डिस्पैच का उपयोग करने का एक टुकड़ा है

संबंधित मुद्दे