使用[NSFileManager URLForUbiquiyContainerIdentifier:]和使用[NSFileManager ubiquiyIdentityToken]的主要区别是什么? [英] What is the main difference between using [NSFileManager URLForUbiquityContainerIdentifier:] and [NSFileManager ubiquityIdentityToken]?

查看:0
本文介绍了使用[NSFileManager URLForUbiquiyContainerIdentifier:]和使用[NSFileManager ubiquiyIdentityToken]的主要区别是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将iCloud支持添加到我的应用程序中,并且一直在关注苹果自己的iCloud Design Guide。指南说我应该通过调用[NSFileManager ubiquityIdentityToken]来检查用户凭据。它还说,我应该选中[NSFileManager URLForUbiquityContainerIdentifier:]以使该应用程序的普适容器可用。

我遇到的问题是ubiquityIdentityToken返回nil,而URLForUbiquityContainerIdentifier:不返回。因为后者返回了正确的URL,所以我假设我的配置文件和授权设置正确。我还仔细检查了我正在运行应用程序的设备是否启用了iCloud,是否已登录并启用了文档和数据。

为什么一种方法暗示没有iCloud连接,而另一种方法暗示没有iCloud连接?

更新: 我注意到,如果我调用ubiquityIdentityToken,它返回一个值,如果我在调用URLForUbiquityContainerIdentifier:之后调用它。然而,如果我的应用程序使用键值存储而不是普适容器,ubiquityIdentityToken将如何工作?

iCloud

推荐答案是苹果推出的一个新事物,允许应用程序检查用户是否登录到iCloud。这是一种极快的方法,可以确定同一用户在应用程序激活之间是否登录/该用户是否实际登录等。

它可以在主线程上运行,并且速度极快。这将允许您对您的应用逻辑做出决定。

需要注意的关键一点是,它可以在主线程上运行,并且速度极快。

您通常会获得此令牌,将其存储在您的应用程序中,然后在您的应用程序从后台返回时再次比较它。

这样,您可以确保它是相同的用户等。

如果返回nil,则表示用户未登录到iCloud。

以前,为了检查用户是否登录,有一个单独的调用,但您必须在另一个线程上异步运行它。我猜,他们看到了这样的情况:用户登录到iCloud,暂停他们的应用程序,登录到另一个账户,然后回到你的应用程序。这将允许您非常高效和轻松地检查这些东西。但是,该令牌没有任何用户可识别信息。

这篇关于使用[NSFileManager URLForUbiquiyContainerIdentifier:]和使用[NSFileManager ubiquiyIdentityToken]的主要区别是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆