我尝试使用 CloudKit 获取记录。我使用 Apple 的示例。
我可以保存记录,但我无法获取它们..
这是获取已保存记录的代码:
func fetchRecords(completionHandler: ((NSArray!) -> Void)!) {
var predicate = NSPredicate(value: true)
var query = CKQuery(recordType: "type", predicate: predicate)
/*self.publicDatabase.performQuery(query, inZoneWithID: nil, { (results:[AnyObject]!, error:NSError!) -> Void in
if (error){
println("An error occured in \(NSStringFromSelector(__FUNCTION__)) \(error)");
} else {
completionHandler(results)
}
})*/
var operation = CKQueryOperation(query: query)
var results = NSMutableArray()
operation.recordFetchedBlock = { (record:CKRecord!) -> Void in
results.addObject(record)
}
operation.queryCompletionBlock = { (cursor:CKQueryCursor!, error:NSError!) -> Void in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
if (error) {
// Error Code 11 - Unknown Item: did not find required record type
if (error.code == 11) {
// Since schema is missing, create the schema with demo records and return results
}
else {
// In your app, this error needs love and care.
println("An error occured in \(NSStringFromSelector(__FUNCTION__)): \(error)");
abort();
}
} else {
completionHandler(results)
}
})
}
self.publicDatabase.addOperation(operation)
}
当我运行它时,“abort()”被调用,我在控制台中得到这个:
fetchRecords 中发生错误:
感谢您的帮助。