2016-11-29 18 views
0

私はCore Data modelに3つのエンティティを持ち、それらのうちのいくつかは同じattributesを持っています。おそらく私のモデルを改良するべきですが、NSManagedObjectエンティティの属性に親クラスを介してアクセスする方法があるかどうか疑問に思っていました。エンティティの代わりにNSManagedObject親クラスの属性を取得

例は次のとおりです。 「Object1」、「Object2」、および「Object3」という3つのNSManagedObjectエンティティがあります。それらのすべてには "attributeOfObject"と呼ばれるattributeがあります。私はif statementを持っています。私は自分のManagedObjectのクラスをチェックします。

if ([self.managedObject isKindOfClass:[Object1 class]]) { 

    // Here I would like to change the attribute of the Object1 NSManagedObject: 
    [self.managedObject setAttributeOfObject:...]; 

if ([self.managedObject isKindOfClass:[Object2 class]]) { 

    [self.managedObject setAttributeOfObject:...]; // for Object2 

and so on... 

ただし、NSManagedObjectクラスにはこの属性がないため、このようにすることはできません。可能なものがあるかどうかを知りたい場合:

[self.managedObject.Entityname setAttributeOfObject...] 

またはこれに類するものがありますか?

答えて

0

NSManagedObjectとそのサブクラスを使用すると、キー値コーディングを使用してエンティティのプロパティにアクセスできます。あなたは今までの属性を確認する必要がある場合は、あなたの属性はattributeOfObject呼び出された場合、あなたは

[self.managedObject setValue:someValue forKey:@"attributeOfObject"]; 

を書くことができ、あなたはエンティティを尋ねることができます。

NSDictionary *attributes = [[self.managedObject entity] propertiesByName]; 
関連する問題