问题标签 [ckquery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
207 浏览

ios - 返回大集合时 CKQuery 失败

启动应用程序时,我正在使用 CloudKit 下载文件。我有一个 CKQuery 可以找到所有尚未下载的文件。当只有一两个要下载时它可以正常工作,但是当下载的数量很大时,它会失败并出现错误:

\"服务器拒绝请求\" (15/2000); server message = \"内部服务器错误\";

这发生在设备或模拟器上。

相关代码

编辑
我已经更新了我的代码以使用 CKOperationQueue

但仍然收到相同的错误。

0 投票
1 回答
174 浏览

swift - CloudKit - 使用一种字段类型获取 5 条记录...需要 3-4 秒。为什么这么慢?

我有一个记录类型 - “DiningTypes”。“DiningTypes 只有一个字段类型,即字符串。我有 5 条记录……加载一张表需要 3-4 秒。这怎么这么慢?我需要在一个以前的控制器有更快的 UI 响应时间?

0 投票
0 回答
223 浏览

swift - CloudKit 按最旧修改记录查询

我正在使用 CloudKit 并尝试通过“modificationDate”来完善记录,但将从最旧的开始填充我的结果限制。例如,如果我在周一、周二、周三、周四创建了 4 条记录,而我只选择其中两条,我将获得周一、周二的记录,而不是周三的周四。下面是我要修复的代码。

}

我认为这就像将NSSortDescriptor升序标记为 false 一样简单。但这不起作用(经过更多测试,我发现这将返回所选字段值为 0 的记录)。

此外,我尝试了一些各种谓词比较无济于事。有什么想法吗?我准备永远放弃 CloudKit。

0 投票
1 回答
4064 浏览

ios - Swift 3 如何为特定日期创建日期

在 swift 2.3 中,我编写了一个函数,它获取日期 6-01-16,将其转换为 NSDate,然后在 CKQuery 中使用它。我不确定如何为 Swift 3 更新这个。

这是我当前的代码:

这不起作用,我应该如何更改我的语法?

0 投票
1 回答
115 浏览

arrays - CKQuery 用于包含任何来自数组的数组(Swift)

我想创建一个 CKQueryOperation 来查找数组包含来自另一个数组的任何项目的记录。它不需要包含第二个数组中的所有元素,至少一个。

我有这条线适用于包含字符串的数组,但我似乎找不到我要找的东西。

谢谢

0 投票
1 回答
236 浏览

cloudkit - 如何获取数据库中的 RecordTypes 列表?

我想列出数据库中的所有记录。

要使用 CKQuery 执行此操作,看来我必须有一个 recordType。谓词将是 TRUEPREDICATE。

如何获取 RecordTypes 列表,以便最终在 CKQuery 中使用?(例如,我将遍历列表,并在运行时创建新的 CKQuery 对象。)

0 投票
0 回答
256 浏览

swift - 具有多重比较的 CloudKit 订阅

我正在尝试为 CloudKit 通知创建订阅,但我似乎无法正确使用谓词。简单通知,只显示一个比较谓词,因此有效负载配置正确,但如果我使谓词更复杂一点,它不会收到任何通知。我需要订阅多个记录更改,但我必须一一进行。我想要的是能够使用 IN 或 OR 进行一次订阅,但它似乎不起作用。

工作谓词

非工作谓词

我正在使用 CKQuery CloudKit 指南(https://developer.apple.com/reference/cloudkit/ckquery)作为参考。订阅谓词实现不同还是我只是创建了错误的谓词?顺便说一句,所有谓词都编译,在断点上它们正确显示,代码中没有错误,应用程序在任何时候都不会崩溃,我已经验证了订阅实际上是在服务器上并且我使用了谓词'已经指定。无论是在设备上还是在服务器上更改记录都没有关系,更复杂的谓词似乎永远不会匹配任何东西。

为了完整起见,这里是使用第一个谓词但不是其余部分可以完美运行的订阅代码的其余部分,

任何帮助是极大的赞赏。

0 投票
0 回答
567 浏览

swift - CloudKit CKQueryOperation 没有获取所有记录

CloudKit 中的 RecordType 是 100 多条记录。以下代码仅从这 11 条记录中获取,它们不是前 11 条记录,它们是从记录的开头、中心和结尾随机选择的。我无法理解代码中有什么问题。

编辑:我通过将 .reseltsLimit 更改为 5000 来实现它!

0 投票
1 回答
540 浏览

swift - CloudKit 谓词:使用 CKQuery 的谓词搜索多个参考字段

使用 Apple CloudKit,我有一个记录用户和一个连接表记录来连接用户并保存关系的状态。这意味着用户可以请求成为朋友,而对方必须先接受。

现在我想查询用户所属的那些关系记录。这意味着在 CKReference 字段 Sender 和 createdBy 字段(也是 CKReference)。

如何为 CKQuery 构建有效谓词以查找发送者或 createdBy 等于当前用户的记录?

显然 CKQuery 不支持 OR 并且 CONTAINS 仅适用于字符串...

0 投票
1 回答
100 浏览

swift - CKQuery 比较日期返回空数组

我试图通过比较两个日期字段来查询 CloudKit 私有数据库。

我只收到 Query result: Optional([ ]) 但从未收到任何结果,尽管我知道我正在比较的时间戳是相同的。我究竟做错了什么?谓词是否定义不正确(我猜是这样)?