在 Cloudkit 中更改 CKRecord 的 CKRecordID 是不是合法?
Posted
技术标签:
【中文标题】在 Cloudkit 中更改 CKRecord 的 CKRecordID 是不是合法?【英文标题】:Is it legit to change the CKRecordID of a CKRecord in Cloudkit?在 Cloudkit 中更改 CKRecord 的 CKRecordID 是否合法? 【发布时间】:2018-03-04 20:17:46 【问题描述】:我有一个对象 Person 和一个对象 Address。我想将这些对象存储到 Cloudkit。有可能多人拥有相同的地址,因此存在 1:m 关系。我在 person 对象上存储了一个 ckreference。现在我想知道,我是否应该给地址一个随机的recordid/recordname,它是由cloudkit提供的,或者是一个由addressdetails组成的,例如。街道,城市...
后面的解决方案意味着,我每次更改详细信息时都必须更改地址记录 ID。
这对人的地址 ckreference 有任何副作用吗?哪种解决方案更好用?
【问题讨论】:
制作自己的记录 ID 包含记录中的其他数据有什么好处?记录ID一旦设置就永远不应该改变。 在我看来,这样做的好处是没有另一个字段来保存对象的记录名称。我没有在文档中看到该信息,即 recordid 一旦设置就永远不应该更改。但这会回答这个问题。 【参考方案1】:在 CloudKit 中,引用是使用 CKReference
类声明的。不要重新发明***;-)
CKRecord 标识符永远不会改变。
您必须注意在CKReference
创建时选择的referenceAction 类型。设置.deleteSelf
只允许有限 记录对该记录的引用,另一方面,.none
引用操作允许您无限数量地引用该CKRecord。
最好的选择是CKReference。
【讨论】:
以上是关于在 Cloudkit 中更改 CKRecord 的 CKRecordID 是不是合法?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我无法访问 CloudKit 中 CKRecord 的 createdAt 字段?
CloudKit - 在 CKRecord 中存储多个 CKReference