- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
请在下面查看我更新的问题:
我正在使用 CloudKit 开发我的第一个应用程序。在查找交易之前,我正在尝试测试用户是否已连接到 iCloud。
这是我的代码(显示各种测试):
func isICloudContainerAvailable()->Bool {
CKContainer.default().accountStatus { (accountStat, error) in
if (accountStat == .available) {
print("iCloud is available")
}
else {
print("iCloud is not available")
}
}
CKContainer.default().accountStatus { (accountStatus, error) in
switch accountStatus {
case .available:
print("iCloud Available")
case .noAccount:
print("No iCloud account")
case .restricted:
print("iCloud restricted")
case .couldNotDetermine:
print("Unable to determine iCloud status")
}
}
if FileManager.default.ubiquityIdentityToken != nil {
//print("User logged in")
return true
}
else {
//print("User is not logged in")
return false
}
}
这对我自己的帐户来说没问题——我可以按预期工作。但是,对于新用户(即 Apple Review 团队和我自己的测试用户),我得到
iCloud 不可用,以及没有 iCloud 帐户
我确定有一个开放的 iCloud 帐户,因为新用户的 iCloud 邮件正在运行。
更新
我让测试用户注销并重新登录。她第一次启动该应用程序时,收到了 noCloud 消息。如果她重新启动应用程序,它就会工作。我可以在一些地方使用一些想法来查看。我已经使用我自己的计算机和一个新的测试帐户确认了这种行为。
最佳答案
根据文档,
The private database is available only when the value in the ubiquityIdentityToken property is not nil.
There are times when iCloud may not be available to your app, such as when the user disables the Documents & Data feature or signs out of iCloud.
Documents and Data 现在显然是“设置”中的 iCloud Drive。
因此,我会询问有问题的用户,他们的 iCloud Drive 设置是否已启用,以及打开它是否有任何不同。
关于swift - 为什么找不到 iCloud 帐户/CKContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41602477/
accountStatusWithCompletionHandler 方法返回 .NoAccount 值。知道为什么返回值不是 .Available 吗?我已登录到 iCloud,并连接到互联网。 文
我在我的应用程序中使用 CloudKit 并试图模拟 CKContainer 来测试我的管理器。这是我尝试过的: func testAccountStatus() { class MockCl
CKContainer.discoverAllIdentities在我的 CloudKit 应用程序中请求总是失败。它在几天内不断失败。 失败(导致相同错误)的代码的简化版本是: private fu
var defaultContainer = CKContainer.defaultContainer var publicDatabase = defaultContainer.publicClou
请在下面查看我更新的问题: 我正在使用 CloudKit 开发我的第一个应用程序。在查找交易之前,我正在尝试测试用户是否已连接到 iCloud。 这是我的代码(显示各种测试): func isIClo
哪种方法更好地决定哪个用户登录? let ubiquityIdentityToken = NSFileManager.defaultManager().ubiquityIdentityToken 返回
我不得不更改我的 Apple ID,但我在旧 Apple ID 的容器中有许多生产环境中的重要记录。 我可以在保持依赖关系和记录作者的同时导出它们吗? 最佳答案 简答:否但是您可以手动将记录从一个容器
在 ios 7 设备上调试应用程序时,我收到以下中断,尽管它适用于 ios 8 设备: (lldb) bt * thread #1: tid = 0xbb78, 0x002094e2 libswif
每当我尝试调用 CKContainer 的 fetchUserRecordIDWithCompletionHandler 函数时,当设备的 iCloud 上的 iCloud Drive 被禁用时,我无
我是一名优秀的程序员,十分优秀!