对NSManagedObject进行子类化

时间:2011-07-22 17:26:12

标签: subclass nsmanagedobject

我有一个名为Hospitals的核心数据实体。有三个字段:名称(字符串),纬度(双精度)和经度(双精度)。 我有一个名为Hospitals.h / .m的NSManagedObject类,它让我可以很好地获取数据。

我也确定了我目前的CLLocation。

现在,当我加载我的所有医院记录时,我想逐步完成它们并计算我目前离医院的距离。没问题。

啊,但现在我需要在某处存储CLLocationDistance。首先,我刚刚用iVars创建了一个新类来保存1)HospitalManagedObject和2)CLLocationDistance。但那变得非常尴尬。

所以,我想我只是扩展Hospitals托管对象类以包含变量“myDistance”。但是我正在尝试的一切导致子类管理对象停止想要与核心数据通信。

这样做的最佳方法是什么?

非常感谢任何见解。

1 个答案:

答案 0 :(得分:1)

您可以为医院对象的对象模型添加一个新字段,例如myDistance,并在数据模型中将其设置为Undefined。这将告诉Core Data您将拥有一个将在运行时使用的属性,但它不会存储在数据库中。

在您的Hospital.h中,您可以使用您想要的任何类型定义属性(我假设距离是NSNumber),就像这样

@property (nonatomic, retain) NSNumber *myDistance;

在您的实现中,您可以将其放在@dynamic myDistance;语句中,就像所有其他数据字段一样。