【问题标题】:Strange error with CloudKit queryCloudKit 查询的奇怪错误
【发布时间】: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://stackoverflow.com/q/35321975/1359088中发表的评论有关:来自Apple的CloudKit快速入门指南:“在开发中,当您在模拟器或设备上通过Xcode运行您的应用程序时,您需要输入用于读取公共数据库中记录的 iCloud 凭据。在生产环境中,默认权限允许未经身份验证的用户读取公共数据库中的记录,但不允许他们写入记录。"

标签: ios swift cloudkit ckquery


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-09-04
    • 2016-12-16
    • 2011-11-27
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多