确定NSManagedObject属性是否可选

时间:2011-04-21 08:44:27

标签: iphone objective-c ios core-data nsmanagedobject

我正在使用Core Data,并且有一个名为NSManagedObject的{​​{1}}子类(它是Core Data中的一个实体)。 Person对象具有多个属性(例如PersonfirstName等)和关系(例如lastNamefriends)。其中一些属性是可选的,而其他属性是强制性的。

给定coWorkers对象如何有效地确定特定属性或关系是可选的还是强制的?

我想尝试避免必须通过Person对象的每个属性进行某种低效的循环,因为我需要经常调用代码,所以类似于下面的伪代码的东西是完美的:

Person

......但我不确定是否可以这样做。上面的伪代码也只会检查属性,所以我猜测在检查属性是一种关系的情况下还需要做其他事情。

我意识到执行单个循环并将所有必需属性的名称存储在数组中可能更有效(然后只检查该数组是否存在属性名称)这就是我在但不幸的是,它并没有真正适用于我的代码结构(因此需要一种更“按需”的方法)。

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:6)

您可以在基类

中编写函数
NSDictionary *d = [[self entity] attributesByName];
NSAttributeDescription *attr = (NSAttributeDescription *)[d objectForKey:@"test"];
BOOL isopt = [attr isOptional];