确定NSManagedObject属性是否是可选的

| 我正在使用Core Data,并且有一个名为
Person
NSManagedObject
子类(这是Core Data中的一个实体)。 Person对象具有多个属性(例如
firstName
lastName
等)和关系(例如
friends
coWorkers
)。这些属性中的一些是可选的,而其他则是必需的。 给定一个“ 1”对象,我如何有效地确定特定属性或关系是可选的还是强制性的? 我想尝试避免通过Person对象的每个属性进行某种效率低下的循环,因为我将需要经常调用代码,因此类似于以下伪代码的代码将是完美的:
if ( [[aPerson getProperty:@\"firstName\"] isOptional] ) {

    // do stuff

}
...但是我不确定是否可以简单地做到这一点。上面的伪代码也只会检查属性,所以我猜测如果要检查的属性是关系,则还需要做其他事情。 我意识到,做一个循环并将所有必需属性的名称存储在一个数组中可能会更有效(然后只需检查该数组以了解属性名称的存在),这就是我在片刻,但是不幸的是,它并不能真正与我的代码结构配合使用(因此需要更多的“按需”方法)。 任何帮助将不胜感激 :)     
已邀请:
您可以在基本子类中编写一个函数
NSDictionary *d = [[self entity] attributesByName];
NSAttributeDescription *attr = (NSAttributeDescription *)[d objectForKey:@\"test\"];
BOOL isopt = [attr isOptional];
    

要回复问题请先登录注册