1

CKQuery在 Swift 4 中这样做:

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

...我得到了这个CKError

CKError(_nsError:CKError 0x60000024dce0:“服务器拒绝请求”(15/2000);服务器消息=“未知字段'recordName'”;uuid = BCD7C8DA-04B0-4422-8A24-F6479D234706;容器ID =“...”)

查询时是否需要使用特殊键recordName

4

1 回答 1

1

又挖了一番,发现不能recordName直接用 查询,但是可以用recordID. CKRecordID因此,您必须构建一个s 数组并进行如下查询,而不是比较字符串数组:

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

我希望这对其他人有所帮助。

于 2017-09-19T05:17:41.733 回答