问题标签 [ckreference]

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 投票
1 回答
793 浏览

objective-c - 如何修改 CloudKit 参考列表

我可以在仪表板中毫无问题地修改我的 CKRecord 的 Reference List 属性,但是如何以编程方式修改它?

我目前尝试将其修改为 NSArray。它没有给我任何错误,但即使数组内容很好,属性也没有设置。

此外,参考列表上的文档要么隐藏得很好,要么根本不存在。

我很感谢任何想法或建议。

0 投票
2 回答
2099 浏览

ios - 如何从 CKReference 对象中获取引用字符串

我有两种记录类型:Books& Authors。书籍有两个属性BookName(String)& AuthorName(CKReference)Authors有一个属性AuthorTitle(String)

我保存CKReference如下

我目前正在获取CKReference如下显示在桌子上

在 tableview 单元格上,它显示记录 ID AuthorName。相反,我想以AuthorName字符串格式查看。我如何得到它?

0 投票
1 回答
2572 浏览

ios - CloudKit CKReference 列表

所以我有一个包含一个字段的记录,它是一个 CKReference 列表。

现在我想批量获取所有引用的(通过这个CKReferences列表)记录(来自另一种类型)。

有任何想法吗?

0 投票
2 回答
464 浏览

ios - CKReference .DeleteSelf 属性无效

.DeleteSelf 是如何真正起作用的?文档说:

当引用对象的操作设置为 CKReferenceActionDeleteSelf 时,引用的目标(即存储在引用的 recordID 属性中的记录)将成为源记录的所有者。删除目标(所有者)记录会删除其所有源记录。

但我的印象是删除目标并不总是删除源。当它保留在容器中时,客户端下载它,并期望引用指向某个地方,但在客户端上构建服务器数据存储的切片时目标不存在,这很烦人?

你如何看待这个案子?你忽略了那种记录?还是定期查找 CloudKit 存储,搜索损坏的记录以删除它们?

或者,与其删除一条记录,不如将它设置为处于已删除状态的属性,但将其保留在数据库中?

0 投票
1 回答
913 浏览

ios - Is there a limit to the number of CKReferenced records in CloudKit?

I am trying to store groups of contacts in CloudKit, and I am getting an error back if I try to create a large group of records, CKReferenced to a single group record.

The limit appears to be around 700 or so records.

Has anyone else seen a similar result, or can confirm the existence (or non-existence) of a limit? I can't find anything in the docs, or through Google.

NOTE: I am already splitting the records I submit into batches of 400 or less, as that seems to be a hard limit.

0 投票
0 回答
285 浏览

nspredicate - 使用基于 CKReference 的谓词执行 CKQueryOperation 不返回所有“拥有的记录”

我的架构如下

RecordType:OwnedEvents 包含一个名为“Owner”的元素。此 Owner 元素指向从“OwnedEvents”类型的 RecordType 创建的 CKReference。

我有 N 个 OwnedEvents 对象都指向一个 Owner 对象。

当我执行查询以检索指向给定 Owner 对象的所有记录时,我发现在某些情况下,查询不会返回指向它的所有记录(在大多数情况下它确实返回它)。它也不会在完成块中返回错误。当我转到 CloudKit 仪表板时,我看到所有 OwnedEvents 对象都指向相同且正确的 Owner 对象,正如预期的那样。我用来检索的代码如下。

我的问题是:

  1. 这种“无声”的失败是意料之中的吗?即我需要识别并恢复吗?或者我在查询中做错了什么?

  2. 如果不是所有符合条件的记录都被检索到,有没有办法说查询必须返回错误?(即 fetch 的原子版本..我猜不是,因为很难提前知道预期的匹配记录数是多少,但我想知道是否可以在 fetch 或架构中指定一些内容提示获取结果中预期的最小记录数)。

  3. 与使用“获取列 X > N1 和列 X 的 OwnedEvents 类型的所有记录”形式的谓词相比,使用使用引用形成的谓词进行提取是否更有效

    • 引用指向同一组记录,N1...N2
    • 即,如果基于参考的检索将不可靠,我不妨远离它并采取蛮力方法,如果它不是更快的话。至少在后者我有一个简单的方法来识别错误

使用的代码

0 投票
1 回答
1063 浏览

ios - CKReference 的 CloudKit Delete Self 选项不起作用

有没有人有使用for aCloudKit选项的经验?这是我从文档中得到的:DeleteSelfCKReference

删除自己

引用记录的删除操作。删除记录还会删除包含指向该记录的 CKReference 对象的任何记录。额外记录的删除可能会触发更多记录的级联删除。删除在默认区域中是异步的,在自定义区域中是立即的。

所以我一直在对此进行测试,我已经使用和使用我的应用程序创建了多个CKReference对象。CloudKit Dashboard每当我使用我的应用程序执行此操作时,我都会像这样创建参考:

我知道它被分配为删除自身,因为在仪表板中它显示了已选中的选项: 删除自我检查

我一定是做错了什么,因为每当我去手动删除使用仪表板引用的记录,或者将我的应用程序设置为以编程方式删除它时,记录就会消失,但引用永远不会被删除。我想也许我应该等待它最终会发生,但几个小时后它仍然存在,就像它应该已经删除一样。这有点令人沮丧,因为我设计了一些代码假设这会起作用,现在我可以拥有一个浪费资源的应用程序,试图找到一个CKRecord不再存在的应用程序。我不应该依靠这个来工作吗?我很感激我能得到的任何帮助或建议。

更新 ~ 04/07/2016

我跳枪回到这里并发布了问题已自行解决的更新。我并不完全相信这个问题不会再次出现,所以我昨晚寻求一些保证。我创建了 5 个不同的对象CKRecords并创建了各种不同的CKReference对象以在整个数据库中引用它们。然后我继续CKReferenceAction.DeleteSelf在每个引用上设置选项(我通过仪表板手动尝试了两个,另外三个以编程方式完成)。无论如何,我等了几分钟,然后删除了引用的记录……十分钟后,引用仍然存在。我又等了 5 到 10 分钟,他们还在那里,所以我就去睡觉了,假设他们肯定会在早上离开,对吧?错误的!十二小时后,CKReference条目仍然存在并且引用的记录仍然消失了。我肯定在挠头,好像它是一个错误CloudKit。我应该提一下,我还注意到我的仪表板中有一些奇怪的行为。在过去的四天左右,在左下角,它一直在说它是“重新索引开发数据”,例如,这是一张图片: 重新索引通知

这会导致这个问题吗?有没有人熟悉这个问题并且知道解决这个问题的方法?任何建议,将不胜感激。我已经向 Apple 提交了错误报告。

0 投票
1 回答
348 浏览

ios - 从 CKReference 中获取 CKReference 对象

我有 3 种记录类型,其中包含如下属性:

客户

用户名:字符串

轮廓图像:UIImage

评论

用户:客户参考

消息:字符串

店铺

评论:评论参考列表

我可以从 Shop CKRecord 对象中获取客户端用户名和 ProfilImage 吗?我可以这样做吗:

  1. 从商店记录中获取评论参考
  2. 从找到的每个评论参考中获取用户参考
  3. 最后从商店记录的评论参考的用户参考中获取用户名和配置文件

如果有一条路径,那么最好的方法是什么?

0 投票
2 回答
244 浏览

ios - 从表中删除参考对象 - Swift

我在从表中删除引用关系时遇到问题。

user2reference在下表中添加了以下内容。

在此处输入图像描述

我只想从表中删除这个引用关系。它应该如下所示:

在此处输入图像描述

试图存储一个空字符串或一个CKReference空记录名称但不起作用

0 投票
1 回答
442 浏览

ios - 将 CKRecordID 保存到 CloudKit

我有一个CKRecordID需要保存到 CloudKit 作为参考。但是,当我尝试保存它时,出现以下错误:

无法转换“CKRecordID”类型的值?到预期的参数类型“CKRecordValue?”

currentSelectedUser 的声明:

在另一个 CKQuery 中检索 currentSelectedUser:

currentSelectedUser 的保存:

错误发生在代码的第 3 行。

如何将其保存CKRecordID为另一个 CloudKit 记录中的参考?