János
János

Reputation: 35038

Field '___recordID' is not marked queryable

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!)))

Upvotes: 11

Views: 4659

Answers (2)

Wizkid
Wizkid

Reputation: 1035

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:

enter image description here

e.g.

let predicate = NSPredicate(format: "UserRecordID = %@", selectedUser!.userRecordID!.recordName)
let query = CKQuery(recordType: recordType, predicate: predicate)

you will not experience this issue.

Upvotes: 1

J&#225;nos
J&#225;nos

Reputation: 35038

I found. possible to add metaindexes as well.

enter image description here

Upvotes: 19

Related Questions