2017-09-19 4 views
0

내가 스위프트 넷이 같은 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) 

내가 그 다른 사람을 도움이되기를 바랍니다.