2017-09-19 11 views
0

私はスウィフト4に、このようなCKQueryをしています:CloudKitサーバー拒否要求:不明なフィールドのRecordName

CKQuery(recordType: package.recordType, predicate: 
    NSPredicate(format: "NOT (recordName IN %@)", package.recordNames as CVarArg)) 

を...と私は、このCKError取得しています:

CKError(_nsError: CKError 0x60000024dce0: "Server Rejected Request" (15/2000); server message = "Unknown field 'recordName'"; uuid = BCD7C8DA-04B0-4422-8A24-F6479D234706; container ID = "...")

はありますがrecordNameと照合するときに使用する特別なキー?

答えて

0

さらに掘り下げた後、recordNameで直接クエリできないことがわかりましたが、recordIDでクエリできます。だからではなく、文字列の配列を比較するのは、このようCKRecordIDの配列とクエリを作成する必要があります。

//- 1 - Build an array of CKRecordIDs 
package.recordIDs = [CKRecordID(recordName: "..."), CKRecordID(recordName: "...")] 

//- 2 - Set the predicate to use the `recordID` key 
let pred = NSPredicate(format: "NOT (recordID IN %@)", package.recordIDs as CVarArg) 

//- 3 - Set the query and drop your mic 
CKQuery(recordType: package.recordType, predicate: pred) 

私はそれが他の誰かに役立ちます願っています。

関連する問題