将Core Data与自定义类集成

时间:2013-04-17 10:01:26

标签: objective-c core-data inheritance subclass superclass

我有一个名为 Car 的核心数据管理对象模型,如下所示:

·H

@property (nonatomic, strong) NSString *name;

.m

@dynamic name;

我有一个名为 CarCache 的自定义类,用于缓存已下载的Car详细信息,如下所示:

·H

@property(nonatomic,copy) NSString *name;

使用此实现持久化:

.m

- (id)initWithCoder:(NSCoder *)coder
{
    if (self = [super init]){
        _name = [coder decodeObjectForKey:@"name"];

我想整合这两个模型,但我想检查一下我是否会遇到问题。

我应该将CarCache作为Car的子类吗?如果是这样,我是否需要重写当前的持久性机制(即使用NSCoder来使用Core Data)?或者我应该正常初始化/持久化实例变量?例如。

self.name = [coder decodeObjectForKey:@"name"];

这感觉不对'因为它是@property方法中的init方法。

或者也许:

super.name = [coder decodeObjectForKey:@"name"];

====更新

澄清我希望通过CarCarCache课程实现的目标。

Car用于在Core Data中本地存储Car对象的详细信息。

CarCache用于存储定期更改的Web服务(例如位置)的Car对象的详细信息。

目前,他们每个人都使用一个单独的模型,如果可能的话我想避免使用。所以,我想整合这两个模型。

E.g。我可以让CarCache成为Car的子类。我没有任何子类化核心数据模型的经验,所以我正在寻找建议。

1 个答案:

答案 0 :(得分:0)

_name = [coder decodeObjectForKey:@"name"]; 

是对的。