3

我在创建 CoreData 托管对象的应用程序中有一些代码。在此代码中,我使用以下行来设置属性:

theAuthor.authorID = 1;

该属性在托管对象标头中声明如下:

@property (nonatomic) uint32_t authorID;

在 iOS 5 中它工作正常,但是当我在 iOS 4.3 中调试时,我收到此错误:

属性“authorID”是“Author”类的标量类型。无法为其生成 setter 方法。

为什么我在 4.3 中收到此错误,但在 5 中没有?我应该避免标量属性吗?我从 C 来到 Obj-C,所以我更喜欢尽可能使用标量,因为它感觉更优化。

我会更好地实现 getter 和 setter 或更改我的代码以使用 NSInteger 或 NSNumber 吗?

4

1 回答 1

3

有关在核心数据中使用标量属性的信息,请参见此处。(顺便说一下,NSInteger 是一个标量)。清单 3 是您特别感兴趣的。基本上,您需要为它编写自己的访问器,但这并不难。

从 iOS5 开始,您可以在核心数据中使用标量属性。这可以通过在从数据模型生成托管对象子类时勾选相应的框来实现。

于 2011-10-19T09:41:54.730 回答