相关疑难解决方法(0)

如何仅使用NSUbiquitousKeyValueStore以编程方式检测用户设备上是否启用了iCloud?

NSUbiquitousKeyValueStore用来将一些偏好数据同步到iCloud.我发现如果用户在"设置应用程序"中禁用iCloud的"文档和数据"项,NSUbiquitousKeyValueStore则无法将其数据同步到iCloud.所以,我想首先检查此设置是否已打开.我找到了这段代码片段:

    NSURL *ubiq = [[NSFileManager defaultManager] 
                   URLForUbiquityContainerIdentifier:nil];
    NSLog(@"url=%@",ubiq);
    if (!ubiq) {
        UIAlertView *av = [[UIAlertView alloc] initWithTitle:nil message:@"Please enable iCloud in Setting app" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [av show];
        return;

    }
Run Code Online (Sandbox Code Playgroud)

我想知道的是,这是否是检测的唯一方法,即使我只是使用NSUbiquitousKeyValueStore(不是iCloud文档存储).还有更好的选择吗?

detect ios icloud nsubiquitouskeyvaluestore

13
推荐指数
2
解决办法
4889
查看次数

如何一起使用NSUbiquitousKeyValueStore和NSUserDefaults

关于如何使用NSUbiquitousKeyValueStore边缘情况的文档不清楚.

如果我想设置一个值,我理解我应该为两者设置一个值NSUserDefaults,NSUbiquitousKeyValueStore因为可以禁用iCloud.但是,在我的测试中,[NSUbiquitousKeyValueStore defaultStore]即使禁用了iCloud(在Mac OS上测试),也会返回有效对象.

另外,据我所知,如果启用iCloud,则将NSUbiquitousKeyValueStore值存储到磁盘(并可离线使用).如果您确定数据少于64KB,使用NSUserDefaults的原因是什么?

iphone cocoa nsuserdefaults icloud nsubiquitouskeyvaluestore

8
推荐指数
1
解决办法
6196
查看次数