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/
- 保存NSArray到iCloud并检索它
- iCloud文档不可见
- iCloud + Core Data的替代品可以在iOS和OS X之间同步数据
- 禁用icloud上的文件夹及其所有子文件夹的备份?
- iCloud同步不通过无处不在的容器发送数据
- NSURLIsExcludedFromBackupKey在iOS 5.1之前崩溃
- taskgated:杀死应用程序,因为它不允许使用com.apple.developer.ubiquity-container-identifiers权利
- 使用iCloud在多个设备上同步核心数据
- 使用UIDocumentPickerViewController,可以像在Slack中一样打开默认服务(Dropbox,Google Drive等)吗?