我正在制作一个CloudKit应用程序,我面临着选择是将我的数据存储在只能由该应用程序访问的默认容器中,还是存储在可以共享数据的自定义容器中。现在我只需要那个应用程序来访问数据,所以我可能会将我的数据放在默认容器中。但是,如果我最终想从其他应用程序访问这些数据,我能否将我的用户数据传输到自定义的可共享容器中? 最佳答案 无需传输您的数据:您的其他应用可以使用默认容器。您可以在新应用的CloudKit功能中指定原始应用的默认容器的名称,然后使用它来初始化CKContainer以访问它。参见thisSOanswerthisAppleDo
在我的应用程序上注册期间,我想从iCloud检索信息,例如名字,然后我想将其存储在我自己的云工具包数据库中。如何从iCloud访问用户信息,而无需询问用户自己这些相关字段? 最佳答案 我能够在XCode8iOS10beta2中使用它:CKContainer.default().requestApplicationPermission(.userDiscoverability){(status,error)inCKContainer.default().fetchUserRecordID{(record,error)inCKConta
哪种方法更好地决定哪个用户登录?letubiquityIdentityToken=NSFileManager.defaultManager().ubiquityIdentityToken返回一个token,客户端可以比较是否和上次一样。如果设备也处于离线状态,它会返回token。accountStatusWithCompletionHandler仅返回一个状态值,但不返回有关谁登录的ID或token。因此在离线模式下它是无用的。我说得对吗?我的另一个问题,有时甚至用户登录并且在线ubiquityIdentityToken返回nil。您如何在发布时检索用户ID?
我在我的应用程序中使用CloudKit并试图模拟CKContainer来测试我的管理器。这是我尝试过的:functestAccountStatus(){classMockCloudContainer:CKContainer{overridefuncaccountStatusWithCompletionHandler(completionHandler:((CKAccountStatus,NSError!)->Void)!){completionHandler(CKAccountStatus.NoAccount,NSError())}}letloginManager=LoginManag
CKContainer.discoverAllIdentities在我的CloudKit应用程序中请求总是失败。它在几天内不断失败。失败(导致相同错误)的代码的简化版本是:privatefuncgetContacts(completion:(([CKUserIdentity]?)->Void)?){container.status(forApplicationPermission:.userDiscoverability){[weakself]status,errorinifleterror=error{print(error)}switchstatus{case.granted:se