问题标签 [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.
objective-c - 如何修改 CloudKit 参考列表
我可以在仪表板中毫无问题地修改我的 CKRecord 的 Reference List 属性,但是如何以编程方式修改它?
我目前尝试将其修改为 NSArray。它没有给我任何错误,但即使数组内容很好,属性也没有设置。
此外,参考列表上的文档要么隐藏得很好,要么根本不存在。
我很感谢任何想法或建议。
ios - 如何从 CKReference 对象中获取引用字符串
我有两种记录类型:Books
& Authors
。书籍有两个属性BookName(String)
& AuthorName(CKReference)
。Authors
有一个属性AuthorTitle(String)
。
我保存CKReference
如下
我目前正在获取CKReference
如下显示在桌子上
在 tableview 单元格上,它显示记录 ID AuthorName
。相反,我想以AuthorName
字符串格式查看。我如何得到它?
ios - CloudKit CKReference 列表
所以我有一个包含一个字段的记录,它是一个 CKReference 列表。
现在我想批量获取所有引用的(通过这个CKReferences列表)记录(来自另一种类型)。
有任何想法吗?
ios - CKReference .DeleteSelf 属性无效
.DeleteSelf 是如何真正起作用的?文档说:
当引用对象的操作设置为 CKReferenceActionDeleteSelf 时,引用的目标(即存储在引用的 recordID 属性中的记录)将成为源记录的所有者。删除目标(所有者)记录会删除其所有源记录。
但我的印象是删除目标并不总是删除源。当它保留在容器中时,客户端下载它,并期望引用指向某个地方,但在客户端上构建服务器数据存储的切片时目标不存在,这很烦人?
你如何看待这个案子?你忽略了那种记录?还是定期查找 CloudKit 存储,搜索损坏的记录以删除它们?
或者,与其删除一条记录,不如将它设置为处于已删除状态的属性,但将其保留在数据库中?
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.
nspredicate - 使用基于 CKReference 的谓词执行 CKQueryOperation 不返回所有“拥有的记录”
我的架构如下
RecordType:OwnedEvents 包含一个名为“Owner”的元素。此 Owner 元素指向从“OwnedEvents”类型的 RecordType 创建的 CKReference。
我有 N 个 OwnedEvents 对象都指向一个 Owner 对象。
当我执行查询以检索指向给定 Owner 对象的所有记录时,我发现在某些情况下,查询不会返回指向它的所有记录(在大多数情况下它确实返回它)。它也不会在完成块中返回错误。当我转到 CloudKit 仪表板时,我看到所有 OwnedEvents 对象都指向相同且正确的 Owner 对象,正如预期的那样。我用来检索的代码如下。
我的问题是:
这种“无声”的失败是意料之中的吗?即我需要识别并恢复吗?或者我在查询中做错了什么?
如果不是所有符合条件的记录都被检索到,有没有办法说查询必须返回错误?(即 fetch 的原子版本..我猜不是,因为很难提前知道预期的匹配记录数是多少,但我想知道是否可以在 fetch 或架构中指定一些内容提示获取结果中预期的最小记录数)。
与使用“获取列 X > N1 和列 X 的 OwnedEvents 类型的所有记录”形式的谓词相比,使用使用引用形成的谓词进行提取是否更有效
- 引用指向同一组记录,N1...N2
- 即,如果基于参考的检索将不可靠,我不妨远离它并采取蛮力方法,如果它不是更快的话。至少在后者我有一个简单的方法来识别错误
使用的代码
ios - CKReference 的 CloudKit Delete Self 选项不起作用
有没有人有使用for aCloudKit
选项的经验?这是我从文档中得到的:DeleteSelf
CKReference
删除自己
引用记录的删除操作。删除记录还会删除包含指向该记录的 CKReference 对象的任何记录。额外记录的删除可能会触发更多记录的级联删除。删除在默认区域中是异步的,在自定义区域中是立即的。
所以我一直在对此进行测试,我已经使用和使用我的应用程序创建了多个CKReference
对象。CloudKit Dashboard
每当我使用我的应用程序执行此操作时,我都会像这样创建参考:
我知道它被分配为删除自身,因为在仪表板中它显示了已选中的选项:
我一定是做错了什么,因为每当我去手动删除使用仪表板引用的记录,或者将我的应用程序设置为以编程方式删除它时,记录就会消失,但引用永远不会被删除。我想也许我应该等待它最终会发生,但几个小时后它仍然存在,就像它应该已经删除一样。这有点令人沮丧,因为我设计了一些代码假设这会起作用,现在我可以拥有一个浪费资源的应用程序,试图找到一个CKRecord
不再存在的应用程序。我不应该依靠这个来工作吗?我很感激我能得到的任何帮助或建议。
更新 ~ 04/07/2016
我跳枪回到这里并发布了问题已自行解决的更新。我并不完全相信这个问题不会再次出现,所以我昨晚寻求一些保证。我创建了 5 个不同的对象CKRecords
并创建了各种不同的CKReference
对象以在整个数据库中引用它们。然后我继续CKReferenceAction.DeleteSelf
在每个引用上设置选项(我通过仪表板手动尝试了两个,另外三个以编程方式完成)。无论如何,我等了几分钟,然后删除了引用的记录……十分钟后,引用仍然存在。我又等了 5 到 10 分钟,他们还在那里,所以我就去睡觉了,假设他们肯定会在早上离开,对吧?错误的!十二小时后,CKReference
条目仍然存在并且引用的记录仍然消失了。我肯定在挠头,好像它是一个错误CloudKit
。我应该提一下,我还注意到我的仪表板中有一些奇怪的行为。在过去的四天左右,在左下角,它一直在说它是“重新索引开发数据”,例如,这是一张图片:
这会导致这个问题吗?有没有人熟悉这个问题并且知道解决这个问题的方法?任何建议,将不胜感激。我已经向 Apple 提交了错误报告。
ios - 从 CKReference 中获取 CKReference 对象
我有 3 种记录类型,其中包含如下属性:
客户
用户名:字符串
轮廓图像:UIImage
评论
用户:客户参考
消息:字符串
店铺
评论:评论参考列表
我可以从 Shop CKRecord 对象中获取客户端用户名和 ProfilImage 吗?我可以这样做吗:
- 从商店记录中获取评论参考
- 从找到的每个评论参考中获取用户参考
- 最后从商店记录的评论参考的用户参考中获取用户名和配置文件
如果有一条路径,那么最好的方法是什么?
ios - 将 CKRecordID 保存到 CloudKit
我有一个CKRecordID
需要保存到 CloudKit 作为参考。但是,当我尝试保存它时,出现以下错误:
无法转换“CKRecordID”类型的值?到预期的参数类型“CKRecordValue?”
currentSelectedUser 的声明:
在另一个 CKQuery 中检索 currentSelectedUser:
currentSelectedUser 的保存:
错误发生在代码的第 3 行。
如何将其保存CKRecordID
为另一个 CloudKit 记录中的参考?