问题
I try to download all record with a specific recordType that recordID is not matches with a certain one.
But I get an error. Any idea? I thought I can mark as queryable only manually added fields.
<CKError 0x15df2a10: "Invalid Arguments" (12/2015); server message = "Field '___recordID' is not marked queryable"; uuid = ECDD0C97-550F-4DD5-942D-AF4DF8917EEB; container ID = "iCloud.com.kukodajanos.Movie-Buffs">
let query = CKQuery(recordType: "UserSetting", predicate: NSPredicate(format: "recordID != %@", CKRecordID(recordName: loggedInUserRecordName!)))
回答1:
I found. possible to add metaindexes as well.

回答2:
You only need to manually set the Query index on ID if you choose NOT to use a predicate with your query. If you use a predicate on any self defined field name such as:
e.g.
let predicate = NSPredicate(format: "UserRecordID = %@", selectedUser!.userRecordID!.recordName)
let query = CKQuery(recordType: recordType, predicate: predicate)
you will not experience this issue.
来源:https://stackoverflow.com/questions/29142717/field-recordid-is-not-marked-queryable