2015-10-12 1 views
0

Я пытаюсь создать пакет nspredicate для облаков, который будет возвращать все элементы, где forSale (Int) == 1 и ownerRecord (CKRefereance)! = Запись текущего пользователя. Вот что у меня есть:NSPredicate CKReference не является идентификатором пользователя

let Query = CKQuery(recordType: "Item", predicate: NSPredicate(format: "ownerRecord.recordID != %@, forSale = 1", [NSUserDefaults.standardUserDefaults().objectForKey("cloudkitUserReccordID") as! String])) 

ответ

0

Вы должны запросить для справки, а не для RecordId строки. Ваше может будет выглядеть что-то вроде:

let ownerId = NSUserDefaults.standardUserDefaults().objectForKey("cloudkitUserReccordID") as! String 
let ownerRef = CKReference(recordID: CKRecordID(recordName: ownerId), action: CKReferenceAction.None) 
let predicate = NSPredicate(format: "ownerRecord != %@, forSale = 1", ownerRef) 
let query = CKQuery(recordType: "Item", predicate: predicate)) 
+0

не кажется, эта доза работать *** Нагрузочного приложение из-за неперехваченное исключение «NSInvalidArgumentException», причина: «Невозможно разобрать строку формата«ownerRecord =% @, Продается = 1 "' –