我正在使用核心数据并且有一个叫做Person
(它是Core Data中的实体)的NSManagedObject
的子类。 Person对象具有多个属性(例如firstName
,lastName
等)和关系(例如friends
,coWorkers
)。其中一些属性是可选的,而其他属性是强制性的。确定NSManagedObject属性是否可选
给定Person
对象如何有效地确定特定属性或关系是可选还是强制?
我想尽量避免必须通过Person对象的每个属性进行某种低效的循环,因为我需要经常调用代码,所以类似于以下伪代码的内容将是完美的:
if ([[aPerson getProperty:@"firstName"] isOptional]) {
// do stuff
}
...但我不确定它是否可以简单地完成。上面的伪代码也只会检查属性,所以我猜测其他的东西需要在被检查的属性是关系的情况下完成。
我意识到,做一个循环并将所有强制属性的名称存储在数组中可能更有效(然后检查该数组是否存在属性名称),这就是我在做的这一刻,但不幸的是,它并没有真正与我的代码结构一起工作(因此需要更多的“按需”方法)。
任何帮助,将不胜感激:)
我认为你是管理对象混乱实体写一个函数。 “可选”仅是实体的属性。这是在托管对象模型文件中定义的,并且一旦上下文分配给它就不能更改。如果实体具有可选关系,那么用该实体初始化的所有被管理对象都具有该可选关系,并且永远不会改变。您无需检查托管对象是否存在可选关系,并且您应该知道模型中的关系。 – TechZen 2011-04-21 17:38:34