objective-c - CloudKit ___recordID 未标记为可查询

标签 objective-c xcode swift cloudkit

我尝试以编程方式成功将数据保存到 CloudKit,但从 CloudKit 获取数据时出现错误

我收到一个错误

> <CKError 0x608000052060: "Invalid Arguments" (12/2015); server message
> = "Field '___recordID' is not marked queryable"; uuid = 19F1E556-5384-42FD-8F65-9FD8A9C9523D; container ID =
> "iCloud.com.mywebsite.CloudDemo">

这是我的代码。

func saveNewRecordTypeToCloud()  {
        // Prepare the record to save
        var record = CKRecord(recordType: "Members")
        record.setValue("test", forKey: "name")
        record.setValue("test", forKey: "surname")

        // Get iCloud Database
        let cloudContainer = CKContainer.defaultContainer()
        let database = CKContainer.defaultContainer().privateCloudDatabase

        // Save the record to iCloud
        database.saveRecord(record, completionHandler: { (record:CKRecord!, error:NSError! ) in
            if error != nil {
                NSLog(error.localizedDescription)
            } else {
                dispatch_async(dispatch_get_main_queue()) {
                    println("finished")
                }
            }
        })



    }



 func getRecordsFromCloud() {
        // Fetch data using Convenience API
        let cloudContainer = CKContainer.defaultContainer()
        let publicDatabase = CKContainer.defaultContainer().privateCloudDatabase
        let predicate = NSPredicate(value: true)
        let sort = NSSortDescriptor(key: "creationDate", ascending: false)
        let query = CKQuery(recordType: "Members", predicate: predicate)
        query.sortDescriptors = [sort]
        publicDatabase.performQuery(query, inZoneWithID: nil, completionHandler: {
            results, error in
            if error == nil {


                self.members = results as! [CKRecord]

                println(self.members)



            } else {
                println(error)
            }
        }) }

为了解决这个问题,我必须通过 Web DashBoard 设置元数据索引,但我想知道是否可以通过代码设置元数据索引?

如果是这样,请给我一些代码示例。

感谢您的所有回答。

最佳答案

抱歉,无法从代码中设置索引。您必须在 CloudKit 仪表板中执行此操作。

关于objective-c - CloudKit ___recordID 未标记为可查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30342130/

相关文章:

ios - 如何在不知道 iOS 中的 UUID 的情况下检测 ibeacon 设备?

iphone - 如何在 MKOverlayView 上显示图像?

ios - 我如何更改我拥有的旧项目以便它可以使用 ARC?

swift - 参数标签与任何可用的重载都不匹配

json - Swift - 具有基本身份验证的 Http-Request

ios - 将 Split View带入现有的标签栏应用程序?

iphone - XCode 在 "Run Script"阶段未完成测试构建

ios - 在 Xcode 8 中未调用 didRegisterForRemoteNotificationsWithDeviceToken

objective-c - Xcode 4.5.2 - OS X 应用程序 - 将 webview 链接到代码,加载手动编码的主页

ios - 获取音频选项并在内部切换它们以调用应用程序