新的iCloud服务有许多可能的配置。如何知道我的用户设备是否配置为将拍摄的照片发送到iCloud服务器而不是仅将其存储在设备上?
答案 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];
}
});
});