仅使用键值存储检测 iCloud 帐户可用性/更改?
Detect iCloud account availibility / change using Key-Value store only?
我使用 iCloud 键值存储,没有任何容器(因为我不需要文档)。
因此该应用未列在 Settings / iCloud / Storage / Manage Storage
列表中,仅列在 iCloud / iCloud Drive
列表中,如下所示:
我真的很想知道它是打开还是关闭,或者是否可用。
似乎 ubiquityIdentityToken
is always nil
, and NSUbiquityIdentityDidChangeNotification
从来没有被调用过。
我有一个工作原型,在模拟器中修改了一个滑块,它在设备上得到了更新,一切似乎都很好。即使,如果我要求标识符(在 NSUbiquitousKeyValueStoreDidChangeExternallyNotification
回调中),它们总是空的:
NSURL *containerURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
NSLog(@"containerURL: %@", containerURL);
NSLog(@"token: %@", token);
// containerURL: (null)
// token: (null)
当我为我的应用程序关闭 iCloud Drive 时,它会在后台终止。没有调用任何通知,也没有在重新启动时调用。
我是否应该简单地设置一个我从未使用过的文档容器?
打开 iCloud 文档,我有令牌(应用程序权利也获得了一些新值)。
但是 ubiquityIdentityToken
现在 returns 值,即使我在给定应用的设备设置中关闭 iCloud Drive (!)。它不会从键值存储中提取更新,仍然设置了令牌。
OFF时只有URLForUbiquityContainerIdentifier
returns nil,ON时URL。
我使用 iCloud 键值存储,没有任何容器(因为我不需要文档)。
因此该应用未列在 Settings / iCloud / Storage / Manage Storage
列表中,仅列在 iCloud / iCloud Drive
列表中,如下所示:
我真的很想知道它是打开还是关闭,或者是否可用。
似乎 ubiquityIdentityToken
is always nil
, and NSUbiquityIdentityDidChangeNotification
从来没有被调用过。
我有一个工作原型,在模拟器中修改了一个滑块,它在设备上得到了更新,一切似乎都很好。即使,如果我要求标识符(在 NSUbiquitousKeyValueStoreDidChangeExternallyNotification
回调中),它们总是空的:
NSURL *containerURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
NSLog(@"containerURL: %@", containerURL);
NSLog(@"token: %@", token);
// containerURL: (null)
// token: (null)
当我为我的应用程序关闭 iCloud Drive 时,它会在后台终止。没有调用任何通知,也没有在重新启动时调用。
我是否应该简单地设置一个我从未使用过的文档容器?
打开 iCloud 文档,我有令牌(应用程序权利也获得了一些新值)。
但是 ubiquityIdentityToken
现在 returns 值,即使我在给定应用的设备设置中关闭 iCloud Drive (!)。它不会从键值存储中提取更新,仍然设置了令牌。
OFF时只有URLForUbiquityContainerIdentifier
returns nil,ON时URL。