问题标签 [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.
ios - 我如何通过其记录名称查询 CloudKit 以获取特定记录?
我如何通过其记录名称查询 CloudKit 以获取特定记录?
以下代码给了我一个错误。
调试窗口显示:
字段“___recordID”的值类型为 REFERENCE,无法使用筛选值类型 STRING 进行查询
swift - iCloud - 将 CKQuery 结果发送到 TableView
我已经编写了这个模型 swift 文件类,并在没有错误的情况下运行,但没有将任何记录字段数据填充到 resultsValueArray 数组中。我在这里想念什么?
有什么建议么?
nspredicate - 带有 modifyDate 的 CloudKit 查询始终不返回任何结果
User
我的目标是从我在 s 数组中指定的 CloudKit获取记录,CKRecord.ID
但前提是它们的更新时间比我在本地跟踪的上次更新日期更新。
我正在执行以下 CloudKit 查询:
我最初设置lastUserFetch
为nil
我的应用程序启动时,并且查询的“第一次获取”部分成功。我取回所有用户记录。
但是一旦我在查询完成后设置我的lastUserFetch
日期:
包含该部分时,我会0
返回记录。modificationDate > %@
当然,我修改了 CloudKit 仪表板中的记录,我可以看到它们modificationDate
已经更新并且比我的lastUserFetch
日期更新,但它们仍然没有在我的搜索结果中返回。
如何将modificationDate
比较与recordID IN
查询结合起来?
swift - 使用 CKQuery 列表获取结果
我有一个 CKRecord 的食谱,这些食谱会被提取到 iOS 应用程序中。获得该列表后,我需要优先考虑建议最高的“likedIds”食谱的结果,这是一个表示 recipe_ids 的整数列表(请参阅下面的我的数据集图像),然后在其下方显示剩余的食谱。我不能只按评分最高的食谱排序,因为我在项目的其他地方使用协同过滤来建议特定食谱而不是其他食谱,但我仍然想将它们全部列出。
在下面的这段代码中,我将结果附加到一个名为“查询”NSPredicates
的列表中。CKQuery
既然我有了它[CKquery]
,我该怎么办?如何获取我需要的结果?publicDB.perform()
如果不是正确的方法(因为我收到“预期的参数类型”错误),我应该使用哪种方法?下面,我尝试在AttachToMainThread()
我编写的函数中使用 for 循环,但我在刷新时得到 3 个不同的随机结果,“likedIds”列表中的食谱,不是“likedIds”列表中的食谱,或者根本没有,但没有 SIGABRT很好的错误。
TL;博士
我如何处理我的CKquery
列表来获取结果?
感谢您的时间!
只是专注于主要主题的代码:
我的整个代码:
我的数据集的示例图像
ios - CKQuery - 具有特定值的特定字段
如何使用此特定 id -MqXU-kkVhl5ef10XD查询此字段myId
邮政:
询问:
swift - Swift CloudKit 和 CKQuery:如何在 queryResultBlock 返回查询游标时迭代检索记录
我正在使用 CloudKit 从使用 CKQuery 的私有数据库中检索记录,在异步函数中使用 CKQueryOperation.queryResultBlock。我已经找到了几个使用 queryCompletionBlock 的示例,但这些示例已被弃用并被 queryResultBlock 取代,关于如何实现它的可用文档很少。只要不返回查询完成游标(<=100 条记录),我的函数就可以很好地工作,但我无法弄清楚如何迭代它。
这是我正在使用的代码:
我试图实现类似示例中的代码但没有成功:上面的代码导致致命错误“SWIFT TASK CONTINUATION MISUSE”作为该行
显然被多次调用(非法)。用“// for > 100 records”注释的行代表我添加到迭代的代码;其他一切都适用于 100 或更少的记录集。
我是否需要迭代地调用 queryRecords 函数本身,如果它存在则传递查询游标,或者是否可以像我在这里尝试做的那样将迭代操作添加到队列中?
如果有人在使用 queryResultBlock(不推荐使用 queryCompletionBlock)之前这样做过,请帮忙!谢谢!