CloudKit 服务器拒绝请求:未知字段记录名称
Posted
技术标签:
【中文标题】CloudKit 服务器拒绝请求:未知字段记录名称【英文标题】:CloudKit Server Rejected Request: Unknown field recordName 【发布时间】:2017-09-19 00:34:26 【问题描述】:我在 Swift 4 中做这样的CKQuery
:
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
时是否需要使用特殊键?
【问题讨论】:
【参考方案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)
我希望这对其他人有所帮助。
【讨论】:
以上是关于CloudKit 服务器拒绝请求:未知字段记录名称的主要内容,如果未能解决你的问题,请参考以下文章
Spring RestController:拒绝未知字段的请求
CloudKit 谓词:使用 CKQuery 的谓词搜索多个参考字段