【问题标题】: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 一旦设置就永远不应该更改。但这会回答这个问题。

标签: ios cloudkit


【解决方案1】:

在 CloudKit 中,引用是使用 CKReference 类声明的。不要重新发明轮子;-)

CKRecord 标识符永远不会改变。

您必须注意在CKReference 创建时选择的referenceAction 类型。设置.deleteSelf 只允许有限 记录对该记录的引用,另一方面,.none 引用操作允许您无限数量地引用该CKRecord。

最好的选择是CKReference。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 2022-07-05
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多