0

我有一个名为Car的核心数据托管对象模型,它看起来像这样:

。H

@property (nonatomic, strong) NSString *name;

.m

@dynamic name;

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

。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"];

==== 更新

澄清我想要通过我的课程实现的Car目标CarCache

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

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

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

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

4

1 回答 1

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

是正确的。

于 2013-04-17T11:58:36.853 回答