URLForUbiquityContainerIdentifier是否应该在主线程之外的线程中调用?

我读了很多有关URLForUbiquityContainerIdentifier:是否应该在主线程之外调用的冲突信息。 在很多苹果的文档中,他们总是把这种方法称为主线程。 不过,我也读过,调用这个方法可能会阻塞相当长的一段时间。

大家的想法是什么? 在主线程中调用它,不用担心或是,总是在另一个线程中调用这个调用?

NSFileManager可能被阻塞,build议在主线程以外的线程上运行。 以下是使用Grand Central Dispatch在另一个线程上使用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]; }); }); 

这是来自这里的一篇伟大的文章:

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