如何以编程方式为核心数据fetchRequest指定目标?

时间:2011-08-03 15:19:02

标签: ios core-data nsfetchrequest

我试图以编程方式执行获取请求以从“EntityA”中检索某些实体。但是我需要将获取请求的目标设置为“EntityB”,谓词的工作方式类似于通过XC中的检查器面板执行此操作的方式吗?无法弄清楚如何以编程方式设置此属性?

THX

1 个答案:

答案 0 :(得分:1)

每次获取只有一个实体作为其目标。获取的谓词只能对目标实体的属性和关系进行操作。如果要测试另一个实体的属性,则必须存在从目标实体到另一个实体的关系。

假设您有以下数据模型:

Alpha{
  name:string
  beta<-->Beta.alpha
}

Beta{
  cost:number
  alpha<-->Alpha.beta
}

Gamma{
  date:date
}

如果您的抓取目标实体为Alpha,那么您可以创建一个谓词,通过每个Beta对象的Alpha关系来测试beta的属性。

NSPredicate *p=[NSPredicate predicateWithFormat:@"beta.number>5"];

...但您无法创建将访问Gamma属性的谓词,因为没有任何关系。