我正在尝试使用如下谓词执行CKQuery:
[NSPredicate predicateWithFormat@"recordChangeTag IN %@", @[record.recordChangeTag]]描述如下:
recordChangeTag IN {"ijrz21fi"}出现以下CKQueryOperation错误:
<CKError 0x7ff5cd3d2fc0: "Invalid Arguments" (12/1009); "Field '___etag' has a value type of NUMBER_INT64 and cannot be queried using filter value type STRING_LIST">谁有办法删除引号,使其在发送到服务器时不会转换为STRING_LIST?或任何其他想法,使其工作?
发布于 2016-03-09 15:20:25
record.recordChangeTag是一个字符串。因此,NSPredicate将假定您正在查询一个字符串,并用引号将该值引起来。你应该先把它转换成一个数字。除此之外,我不认为这个字段是一个列表,所以您可以使用=而不是IN。
如果您使用的是Swift,您的代码将如下所示:NSPredicate(格式:"recordChangeTag = %@",Int64(record.recordChangeTag!)!)
但是后来..。为什么要查询recordChangeTag?这有可能吗?如果是这样,那么只有在获得changeTag后记录没有更改的情况下,才会得到结果。您不能只查询recordID并测试changeTag是否未更改吗?
https://stackoverflow.com/questions/35879305
复制相似问题