0

次のような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クラスで何を達成したいのかを明確にするため。

CarCar オブジェクトの詳細を Core Data にローカルに保存するために使用されます。

CarCache定期的に変更される Web サービスからの Car オブジェクトの詳細 (場所など) を保存するために使用されます。

現時点では、それぞれ別のモデルを使用していますが、これはできれば避けたいと思っています。ですから、この 2 つのモデルを統合したいと考えています。

たとえば、CarCache を Car のサブクラスにすることができます。Core Data モデルをサブクラス化した経験がないので、提案を探しています。

4

1 に答える 1

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

正しい。

于 2013-04-17T11:58:36.853 に答える