有没有办法为 Core Data 原始访问器自动生成 @property 和 @dynamic 标签?

Posted

技术标签:

【中文标题】有没有办法为 Core Data 原始访问器自动生成 @property 和 @dynamic 标签?【英文标题】:Is there any way to automatically generate @property and @dynamic tags for Core Data primitive accessors? 【发布时间】:2010-02-05 09:48:16 【问题描述】:

更新:mogenerator 工作,修改模板

Core Data 文档建议使用 -primitiveValue 和 -setPrimitiveValue: 方法来访问和更改 NSManagedObject 子类的内部数据,而不是使用速度较慢且未经类型检查的 -primitiveValueForKey: 和 setPrimitiveValue:forKey:。

我想在我的代码中采用这种更改,但为了避免编译器警告,我需要在我的托管对象类中为所有这些原始访问器添加@property 和@dynamic 声明。 Xcode 很乐意为我生成所有这些代码,但仅限于对象的公共访问器(-value 而不是 -primitiveValue)。

是否有任何自动化方法(通过 Xcode 或可以扫描 .xcdatamodel 文件的外部程序)为我生成这些原始访问器,这样我就不必在所有 16 个托管类中全部输入它们?

【问题讨论】:

【参考方案1】:

看看mogenerator (GitHub)。

【讨论】:

虽然它看起来确实是一个很酷的工具,但它不会为任何原始属性生成访问器,因此它不会为我节省任何工作。事实上,由于我已经放弃了对目标文件的手动编辑,因此转换为 mogenerator 需要我在使用它之前抽出我在类中的所有自定义行为。 mogenerator 确实为原始属性生成访问器。例如。它将为 fileCount 整数属性生成 -(int)fileCountValue 方法。您不必重写您的自定义行为,因为 mogenerator 将使用自动生成的内容生成 _.h 文件,并将单独留下您的 .h 文件。您唯一需要做的就是包含头文件并使您的类成为 _. 的子类 它暴露的标量值存储在 NSNumber 对象和实体属性的原始字典访问器之间存在差异。但是,我深入研究了 mogenerator 模板并能够修改它们以添加我需要的声明,因此该工具毕竟对我有用。一旦我确认我没有搞砸模板,我可能会将其上传到 mogenerator github 存储库。 我误解了您的原始属性评论。很高兴看到您毕竟找到了 mogenerator 的用途 ;-)。

以上是关于有没有办法为 Core Data 原始访问器自动生成 @property 和 @dynamic 标签?的主要内容,如果未能解决你的问题,请参考以下文章

Core Data 自定义访问器甚至没有被调用

对键盘使用原始输入时,有没有办法访问键重新映射?

访问 Core Data 中的特定条目

有没有办法从带有输入的组件转换为原始 html?

从 Windows.Media.Core.MediaSource 访问原始音频/视频帧

有没有办法强制 Oracle 在加入访问后评估过滤器?