0

对于 iOS7,我将有关 inApp 购买的用户信息存储在 iCloud keyvalueStore 中,以便在当前设备和用户的所有其他 iOS 设备上进行恢复。在用户能够购买东西之前,我正在检查 kvs 的 iCloud 文档和数据是否处于活动状态,以确保恢复工作......

检查看起来像这样(适用于 iOS7):

- (BOOL)isICloudEnabledOnThisDevice
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSURL *ubiquityContainerURL = [fileManager URLForUbiquityContainerIdentifier:nil];
    return (ubiquityContainerURL) ? YES : NO;
}

迁移到 iOS8 并在我的设备上启用 iCloud Drive 后 - 我注意到此检查总是失败。我希望如果激活一次,kvs 会自动迁移到 iCloud 驱动器 -> 所以我假设我只需修复此检查是否 iCloud 驱动器(仅适用于 >iOS8)在设备上处于活动状态 - 对吗?

问题是 - 我不确定如何正确检查 iOS8,因为 API 文档对那个 imho 不是很清楚:-/?!

oO

4

2 回答 2

0

好的,解决了 - 由于 xcode 5 兼容性标志,配置文件需要更新......

于 2015-03-20T09:32:45.840 回答
0

您应该调用 -[NSFileManager ubiquityIdentityToken] 而不是 -[NSFileManager URLForUbiquityContainerIdentifier:] 因为它更快。

请参阅https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/index.html#//apple_ref/occ/instp/NSFileManager/ubiquityIdentityToken上的文档

于 2015-12-02T11:25:10.507 回答