CoreData - 原始访问器作为属性?

时间:2012-05-09 00:50:33

标签: core-data

通过Apple的文档here阅读,示例代码将原始访问器和mutator声明为类别中的单独方法。是否可以使用@property来声明基元?这样做是否有缺点;它似乎可以节省锅炉板代码,但是当以这种方式声明时生成方法的方式会产生性能影响吗?什么是可选属性 - (强,非原子)?

Apple的示例代码

@interface Department : NSManagedObject

@property(nonatomic, retain) NSString *name;

@end

@interface Department (PrimitiveAccessors)
- (NSString *)primitiveName;
- (void)setPrimitiveName:(NSString *)newName;
@end

建议更改

@interface Department : NSManagedObject

@property(nonatomic, retain) NSString *name;

@end

@interface Department (PrimitiveAccessors)

@property (strong, nonatomic) NSString *primitiveName;

@end

1 个答案:

答案 0 :(得分:0)

您应该自动为Core Data实体生成类。您可以通过按Editor菜单并选择“Create NSManagedObject subclass”来完成此操作。这将自动为您的每个实体创建一个类,并且这些类将具有您想要的属性。

如果您想自定义这些类,我强烈建议您在类别中进行。我建议这样做,因为您可能想要返回到您的数据模型并添加或删除属性,因此您必须生成新的子类。在那种情况下,您可能对子类所做的任何更改都将被覆盖,这可能会很痛苦:)