【问题标题】:How do you mark a property as 'readonly' for CoreData?如何将 CoreData 的属性标记为“只读”?
【发布时间】:2013-06-07 15:19:16
【问题描述】:

我正在更新一个应用程序,其中还涉及重组和扁平化 CoreData 模型。一切正常,但是当我尝试在 CoreData 中设置一些属性时,它抱怨有问题的属性设置为“只读”并且无法生成任何 setter 方法。

无论我在哪里看,我都无法在 Core Data 建模器中找到任何地方来标记该属性,也无法确定 mogenerator 是否故意以这种方式生成它。

有谁知道该属性在哪里被标记为“只读”?

更新

我已经找到了问题所在,它与 Core Data 或 mogenerator 无关。它实际上与它定义了一个协议有关,该协议具有标记为只读的相同名称属性。 this SO question 中也提到了现在才弹出的原因。 我已经删除了可能会使人们感到困惑的有关同步服务的额外信息。

我将添加一个答案,其中说明了我所知道的使用 mogenerator 将 Core Data 对象设置为只读的唯一方法,因为这是对这个问题的答案。仍然可以回答任何其他方法来执行此操作。

【问题讨论】:

  • 属性叫什么?你能显示生成的实体类的.h文件吗?
  • 这是一个非常古老的数据模型吗?同步服务已过时,我认为 iOS 从未支持过它。
  • 这是一个安全的电子签名应用程序,这可能是添加它的原因。我还不知道这意味着什么(还),但它应该让记录更加安全。
  • 有问题的属性称为“accessToken”,尽管我目前无法创建它的生成文件。显然与 AutomaticResolutionPolicy 有关,它会导致 momc 发牢骚。
  • @TomHarrington 感谢您的帮助。最后,这是一个完全不同的错误。查看我的回答并更新问题。

标签: ios core-data mogenerator


【解决方案1】:

这个问题与 Core Data 或 mogenerator 无关。有关详细信息,请参阅我更新的问题。

也就是说,mogenerator 确实提供了一种通过添加 User Info 键(具有任何值)将 Core Data 实体属性标记为 readonly 的方法:

mogenerator.readonly

v1.27 change history on github 中也提到了这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多