我有一个名为 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"];
====更新
澄清我希望通过Car
和CarCache
课程实现的目标。
Car
用于在Core Data中本地存储Car对象的详细信息。
CarCache
用于存储定期更改的Web服务(例如位置)的Car对象的详细信息。
目前,他们每个人都使用一个单独的模型,如果可能的话我想避免使用。所以,我想整合这两个模型。
E.g。我可以让CarCache成为Car的子类。我没有任何子类化核心数据模型的经验,所以我正在寻找建议。
答案 0 :(得分:0)
_name = [coder decodeObjectForKey:@"name"];
是对的。