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

Iphone URLForUbiquityContainerIdentifier:是否应在主线程之外的线程中调用?,iphone,objective-c,ios,ios5,icloud,Iphone,Objective C,Ios,Ios5,Icloud,我读过很多关于是否应该在主线程之外调用URLForUbiquityContainerIdentifier:的相互矛盾的信息。在很多苹果的文档中,他们总是在主线程上调用这个方法。然而,我也读到过,调用这个方法可能会阻塞很长一段时间 大家的想法是什么?在主线程中调用它,不要担心,或者是的,总是在另一个线程中调用?NSFileManager可能会被阻塞,建议在主线程之外的其他线程上运行。下面是使用Grand Central Dispatch在不同线程上利用iCloud存储的一个片段 dispatch_

我读过很多关于是否应该在主线程之外调用
URLForUbiquityContainerIdentifier:
的相互矛盾的信息。在很多苹果的文档中,他们总是在主线程上调用这个方法。然而,我也读到过,调用这个方法可能会阻塞很长一段时间


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

NSFileManager可能会被阻塞,建议在主线程之外的其他线程上运行。下面是使用Grand Central Dispatch在不同线程上利用iCloud存储的一个片段

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];
    });
});
这是一篇很棒的文章: