core-data - 核心数据原始访问器

标签 core-data primitive accessor

我有点困惑 Core Data 是否以 setPrimitiveAttributeName: 形式为 NSManagedObject 子类生成原始访问器,而与 setPrimitiveValue: forKey: 形式相比,它似乎始终如一。

我困惑的根源是我使用建模工具(XCode 4)为我的两个实体生成 NSManagedSubclasses,据我所知,它们共享相同的元数据设置,但一个子类识别 setPrimitiveAttributeName 形式,而另一个没有(它给了我一个“找不到方法”的编译器警告)。

那么,期望值是多少?如果我打开一个新项目,创建一个具有一个属性的实体,并使用建模工具生成必要的 NSManagedObject 子类代码,我是否应该期望它自动生成更有效的原始访问器形式?

最佳答案

我遇到了类似的问题。而运行时 generates the primitive accessors , Xcode 4 不会为基元生成声明的属性,您必须根据文档在子类中自己执行此操作。

我个人为每个实体创建一个类别,并始终将我的自定义代码放在那里,这样我就可以随时重新生成 MO,而不必复制和粘贴。

您可以在类别中执行此操作,界面具有以下内容:

@property (nonatomic, retain) NSDate * primitiveLastUsed;

实现是这样的:
@dynamic primitiveLastUsed;

非常巧妙,使从 Xcode 重新生成 MO 变得轻松。

关于core-data - 核心数据原始访问器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057672/

相关文章:

ios - 在 NSManagedObjectsDidChangeNotification 创建无限循环后设置 lastModificationDate 属性

ios - 如何在 IBAction 中使用 Core Data 插入数据

java - 在 Java 中使用 Class 类创建对象

c# - 系统.BadImageFormatException : Could not load file or assembly 'x_Accessor,...' This assembly is built by a runtime newer

iphone - 核心数据 : Is it possible to merge . xcdatamodel "files"?

swift - 在 CoreData 的后台线程中创建实体

java - 什么是 Java 原始数据类型修饰符?

javascript - 如何在 Cesium 上停止预定的 ontick 事件

properties - 未调用 Swift 中的访问器方法

javascript - 无论括号的数量如何,都可以通过括号表示法访问对象属性