iOS - 如何知道是否启用了iCloud照片传输功能

时间:2011-11-05 14:34:11

标签: iphone image settings ios5 icloud

新的iCloud服务有许多可能的配置。如何知道我的用户设备是否配置为将拍摄的照片发送到iCloud服务器而不是仅将其存储在设备上?

1 个答案:

答案 0 :(得分:1)

只要您在下方提供有效的普遍容器标识符,方法应返回YES

static NSString *UbiquityContainerIdentifier = @"ABCDEFGHI0.com.acme.MyApp";

- (BOOL) iCloudIsAvailable
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSURL *ubiquityURL = [fileManager URLForUbiquityContainerIdentifier:UbiquityContainerIdentifier];
    return (ubiquityURL) ? YES : NO;
}

但是,我发现在会话中第一次调用URLForUbiquityContainerIdentifier:可能需要一些时间(几秒钟)。所以,只需确保在后台调用它以暂时不阻止UI:

dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(backgroundQueue,^{
    BOOL isAvailable = [self iCloudIsAvailable]
    /* change to the main queue if you want to do something with the UI. For example: */
    dispatch_async(dispatch_get_main_queue(),^{
        if (!isAvailable){
            /* inform the user */
            UIAlertView *alert = [[UIAlertView alloc] init...]
            [alert show];
            [alert release];
        }
    });
});