核心数据实体继承。基于属性值返回实体子类

时间:2012-05-23 09:59:40

标签: objective-c core-data

假设我们有 ServiceProvider 实体,其属性为标识符。 然后我创建 ConcreteServiceProvider 实体,该实体继承自 ServiceProvider 。 如何使核心数据返回 ServiceProvider 对象的列表,除了具有标识符== 5的ServiceProvider,它应该是 ConcreteServiceProvider

有可能吗?

2 个答案:

答案 0 :(得分:0)

您只能在每个请求中获取一种实体。

所以我会执行ConcreteServiceProvider实体的NSFetchRequest并设置它的谓词只获取标识符== 5的那些。然后我会执行另一个NSFetchRequest但这次我会要求所有的ServiceProvider实体。拥有serviceProvider实例的结果数组我会迭代它们并用ConcreteServiceProvider实例替换那些具有标识符== 5的那些..(假设那些实际上是ConcreteServiceProvider,你可能需要引入一个helper属性来区分,你不能避免它,因为你一次只能获取一种实体..)。

答案 1 :(得分:0)

Finaly!正确的答案是用所需的实体预填充核心数据。