i have cloudkit records 'keywords' field of type 'text'
i can use pattern fetch keywords field of records
let predicate = nspredicate(value: true) let query = ckquery(recordtype: "library", predicate: predicate) var operation = ckqueryoperation(query: query) operation.desiredkeys = ["keywords"] operation.recordfetchedblock = { [weak self] (record:ckrecord!) in ... } operation.querycompletionblock = { [weak self] (cursor:ckquerycursor!, error:nserror!) in ... } self.publicdatabase!.addoperation(operation) i'd limit returned records keywords field matches search string assume means providing suitable predicate.
the documentation indicates contains lists unless use self keyword searches text fields
however, replacing predicate declaration with:
let predicate = nspredicate(format: "self contains[c] %@", searchstring) results in
*** terminating app due uncaught exception 'ckexception', reason: 'predicate comparison options not supported expression: self contains[c] and using
let predicate = nspredicate(format: "self contains %@", searchstring) results in
*** terminating app due uncaught exception 'ckexception', reason: 'unexpected expression: self contains i sure straightforward docs not complete yet
you use predicate token search:
nspredicate(format: "alltokens tokenmatches[cdl] %@", tokens)
Comments
Post a Comment