如何在mobileApp上刷新ubiquityIdentityToken

时间:2019-11-19 09:20:40

标签: ios objective-c xcode icloud

我有一个非常基本的用例,我只想检查用户是否在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帐户更改的通知,并再次获取“已登录”信息,然后,如果令牌不同,则刷新用户数据。

基于上面的链接,我有两个问题:

  1. 由于我只需要登录信息的运行时响应,我是否可以仅提取令牌并立即将其删除,以便如果用户再次单击按钮,我将获得正确的信息。如果可以的话,一旦获得信息,如何删除令牌?
  2. 医生说,当我收到此通知时,请从- (IBAction)isICloudSignedIn:(id)sender { id token = [[NSFileManager defaultManager] ubiquityIdentityToken]; if (token) { _iCloudValue.text = @"Signed In"; } else { _iCloudValue.text = @"Not Signed In"; } } 获取新令牌。如果是这样,我该如何获取?

0 个答案:

没有答案