我有一个Core Data model
,其中包含三个实体,其中一些实体具有相同的attributes
。我应该改进我的模型,但我想知道是否有办法通过父类访问NSManagedObject
实体的属性。
这是一个例子:
我有三个NSManagedObject
实体,称为“Object1”,“Object2”和“Object3”。所有这些都有一个名为“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 :(得分:0)
使用NSManagedObject
及其子类,您始终可以使用键值编码来访问实体的属性。如果您的属性名为attributeOfObject
,则可以编写
[self.managedObject setValue:someValue forKey:@"attributeOfObject"];
如果您需要查找属性,可以询问实体:
NSDictionary *attributes = [[self.managedObject entity] propertiesByName];