自动生成的 NSManagedObject 中的属性

Posted

技术标签:

【中文标题】自动生成的 NSManagedObject 中的属性【英文标题】:Properties in auto generated NSManagedObject 【发布时间】:2013-12-10 10:45:19 【问题描述】:

我有以下属性,它是从自动生成的NSManagedObject 创建的:

@property (nonatomic, retain) id imageViewBounds;

在.m 文件中合成为dynamic。是否可以将其更改为:

@property (nonatomic) CGRect imageViewBounds;

不用担心会出现任何疯狂的副作用?似乎工作正常,但无法理解这是否会导致 dynamic 变量出现任何意外后果。

【问题讨论】:

这个属性是如何在你的模型中声明的?核心数据不直接支持结构。 是的,如果你想把它作为答案,似乎必须转换 NSValue @jrturton 【参考方案1】:

有趣的是它甚至完全有效。

如果您不喜欢 Core Data 的标准对象,您应该在模型中将该属性设置为可转换。这样你就可以保证你所做的事情以后不会产生意想不到的结果。

查看可变形对象的这些链接:

http://www.lextech.com/2013/01/core-data-transformable-attributes/

https://developer.apple.com/library/ios/samplecode/photolocations/introduction/intro.html

尽管使用结构体,例如 CGRect,你可能会不走运。

【讨论】:

是的,这是正确的,它实际上并没有像我想象的那样工作。我必须将结构存储到 NSValue 中,然后它工作正常(我已经将它们设置为可转换的)。

以上是关于自动生成的 NSManagedObject 中的属性的主要内容,如果未能解决你的问题,请参考以下文章

核心数据-后台线程中的更新实体会自动更改主线程中的 NSManagedObject 而无需合并-为啥?

XCode4 无法正确生成 NSManagedObject 子类

类别中的自定义 NSManagedObject 设置器

NSManagedObject 子类中的泛型类型

如何在 Xcode8 中手动触发 NSManagedObject 子类的生成

Swift 中的 NSManagedObject 子类不能使用自定义访问器?