我有一个非常基本的用例,我只想检查用户是否在mobileApp上登录到iCloud(布尔响应)。 我正在尝试在Xode模拟器上进行检查。下面是我编写的代码。
╔═════════════════════╦════════════╦════════════╦════════════╦═══════════╗
║ Date ║ Name1 ║ Name2 ║ Name3 ║ Name[n] ║
╠═════════════════════╬════════════╬════════════╬════════════╬═══════════╣
║ 2019-11-17 20:00:00 ║ 200.05 ║ 1500 ║ 0.105 ║ xxx.xx ║
║ 2019-11-17 20:03:00 ║ 210.05 ║ 1600 ║ 0.267 ║ xxx.xx ║
║ 2019-11-17 20:06:00 ║ 225.45 ║ 1550 ║ 0.560 ║ xxx.xx ║
║ ... ║ ... ║ ... ║ ... ║ ... ║
╚═════════════════════╩════════════╩════════════╩════════════╩═══════════╝
上面编写的代码是在单击按钮时执行的。
当我打开模拟器并登录iCloud,然后单击按钮并测试它是否返回值时。同样,当我打开模拟器并退出iCloud并单击按钮时,它将返回null。
但是,一旦我检查了登录场景,然后退出iCloud并再次检查,它仍会在后台运行应用程序时返回一个值。如果我从后台删除了该应用程序,然后再次检查它是否可以正常工作。
我阅读了苹果开发人员文档here,我需要阅读有关iCloud帐户更改的通知,并再次获取“已登录”信息,然后,如果令牌不同,则刷新用户数据。
基于上面的链接,我有两个问题:
- (IBAction)isICloudSignedIn:(id)sender {
id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
if (token) {
_iCloudValue.text = @"Signed In"; }
else {
_iCloudValue.text = @"Not Signed In"; }
}
获取新令牌。如果是这样,我该如何获取?