CloudKit 查询的奇怪错误

Posted

技术标签:

【中文标题】CloudKit 查询的奇怪错误【英文标题】:Strange error with CloudKit query 【发布时间】:2015-02-03 03:01:30 【问题描述】:

对于 CloudKit 查询,我收到一个非常普遍的错误。我不知道如何解决它。有人有什么建议吗?

错误是<CKError 0x17065c230: "Internal Error" (1/2005)> Error occurred. Error = <CKError 0x174648370: "Internal Error" (1/2005)>

我的代码是:

    override func viewDidLoad() 
    super.viewDidLoad()
    let database = CKContainer.defaultContainer().publicCloudDatabase
    let container = CKContainer.defaultContainer()
    let publicDB = container.publicCloudDatabase
    let data = CKRecord(recordType: "theUsers")

    var predicate = NSPredicate(value: true)
    let myQuery = CKQuery(recordType: "theUsers", predicate: predicate)

    var mySelfie = matchedSelfie

    publicDB.performQuery(myQuery, inZoneWithID: nil) 
        results, error in
        if error != nil 
            println(error)

         else 
            for record in results
                if let aselfie = record.stringForKey("selfie")  //Optional binding
                    mySelfie.append(aselfie) //Append to string array

                    mySelfie.append(aselfie)
                    return ()
                

            


【问题讨论】:

更新了您的标签和标题。请注意,这不是 Xcode 错误,Xcode 只是 IDE。 这是一个通用的 CloudKit 错误消息。你是只用这段代码得到这个还是什么都不起作用?您是否设置好云套件功能?如果您先从设备中删除该应用程序,然后再试一次怎么办?您没有在错误消息中获得更多信息吗?通常还有一个特定的原因。 只有这段代码给出了错误。我能够成功写入 CK。 这可能与https://***.com/q/35321975/1359088中发表的评论有关:来自Apple的CloudKit快速入门指南:“在开发中,当您在模拟器或设备上通过Xcode运行您的应用程序时,您需要输入用于读取公共数据库中记录的 iCloud 凭据。在生产环境中,默认权限允许未经身份验证的用户读取公共数据库中的记录,但不允许他们写入记录。" 【参考方案1】:

我遇到了同样的错误。您可以通过查看项目“功能”选项卡中的 iCloud 步骤部分来获取更多信息:

    在项目导航器中,选择您的项目 选择您的目标 选择功能 展开 iCloud 部分 假设您启用了 CloudKit 服务,您应该会看到必须执行的步骤列表。 (例如,将“iCloud”权利添加到您的 App ID。)

很有可能,其中至少有一个显示红色错误图标而不是复选标记。

【讨论】:

以上是关于CloudKit 查询的奇怪错误的主要内容,如果未能解决你的问题,请参考以下文章

CloudKit CKModifyRecords操作错误

BigQuery 中的奇怪错误

有时发生错误的奇怪组

使用 wcf 对 sql server 运行查询时出现奇怪的错误

MS Access 2013 从 VBA 调用插入查询并出现奇怪的错误

xcode 7 和 cloudkit 的非常奇怪的问题