web*_*stx 2 xcode objective-c 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">
Run Code Online (Sandbox Code Playgroud)
这是我的代码.
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)
}
}) }
Run Code Online (Sandbox Code Playgroud)
要解决这个问题,我必须通过Web DashBoard设置Metadatas索引,但我想知道我是否可以通过代码设置Metadatas索引?
如果是这样,请给我一些代码示例.
谢谢你的所有答案.
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |