次のようなCarという Core Data Managed Object Modelがあります。
.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"];
これら 2 つのモデルを統合したいのですが、問題が発生しないことを確認したいと思います。
CarCache を Car のサブクラスにする必要がありますか? その場合、現在の永続化メカニズムを書き直す必要がありますか (つまり、NSCoder を使用して Core Data を使用するなど)? または、インスタンス変数を通常どおり初期化/永続化する必要がありますか? 例えば
self.name = [coder decodeObjectForKey:@"name"];
@property
これは、メソッド内のメソッドであるため、適切ではありませんinit
。
多分:
super.name = [coder decodeObjectForKey:@"name"];
====更新
Car
自分のCarCache
クラスで何を達成したいのかを明確にするため。
Car
Car オブジェクトの詳細を Core Data にローカルに保存するために使用されます。
CarCache
定期的に変更される Web サービスからの Car オブジェクトの詳細 (場所など) を保存するために使用されます。
現時点では、それぞれ別のモデルを使用していますが、これはできれば避けたいと思っています。ですから、この 2 つのモデルを統合したいと考えています。
たとえば、CarCache を Car のサブクラスにすることができます。Core Data モデルをサブクラス化した経験がないので、提案を探しています。