首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CloudKit: recordChangeTag数组中的CKQuery谓词

CloudKit: recordChangeTag数组中的CKQuery谓词
EN

Stack Overflow用户
提问于 2016-03-09 06:29:16
回答 1查看 385关注 0票数 0

我正在尝试使用如下谓词执行CKQuery:

代码语言:javascript
运行
复制
[NSPredicate predicateWithFormat@"recordChangeTag IN %@", @[record.recordChangeTag]]

描述如下:

代码语言:javascript
运行
复制
recordChangeTag IN {"ijrz21fi"}

出现以下CKQueryOperation错误:

代码语言:javascript
运行
复制
<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?或任何其他想法,使其工作?

EN

回答 1

Stack Overflow用户

发布于 2016-03-09 15:20:25

record.recordChangeTag是一个字符串。因此,NSPredicate将假定您正在查询一个字符串,并用引号将该值引起来。你应该先把它转换成一个数字。除此之外,我不认为这个字段是一个列表,所以您可以使用=而不是IN。

如果您使用的是Swift,您的代码将如下所示:NSPredicate(格式:"recordChangeTag = %@",Int64(record.recordChangeTag!)!)

但是后来..。为什么要查询recordChangeTag?这有可能吗?如果是这样,那么只有在获得changeTag后记录没有更改的情况下,才会得到结果。您不能只查询recordID并测试changeTag是否未更改吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35879305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档