【问题标题】:How to specify Destination for Core Data fetchRequest programmatically?如何以编程方式指定核心数据 fetchRequest 的目标?
【发布时间】:2011-08-04 04:44:20
【问题描述】:

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

谢谢

【问题讨论】:

  • 你是否尝试设置 nsfetchrequest 的实体。
  • 我可能会感到困惑,但我将实体设置为 EntityA,这是我想要返回的实体类型,但是我需要将目标设置为差异实体 EntityB,因为这就是我的谓词是结构化的。

标签: ios core-data nsfetchrequest


【解决方案1】:

每次提取只有一个实体作为它的目标。 fetch 的谓词只能对目标实体的属性和关系进行操作。如果要测试另一个实体的属性,则目标实体与另一个实体之间必须存在关系。

假设您有以下数据模型:

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

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

Gamma{
  date:date
}

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

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

...但是您不能创建一个谓词来访问Gamma 的属性,因为没有关系。

【讨论】:

  • 后续问题。创建 Fetched Property 时,检查器面板中的“Destination”字段是什么?是否可以将其设置为与 Fetched Property 所属实体相比的差异值?
  • 对上述评论有什么想法吗?
猜你喜欢
  • 2020-04-17
  • 1970-01-01
  • 2016-05-15
  • 2015-05-24
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多