使用swift获取带有谓词的对象关系的coredata

时间:2017-10-28 02:43:48

标签: ios swift core-data

我试图在coreData中执行对实体的获取。该实体与另一实体具有一对一的关系。我想只获取第一个实体中与第二个实体中的特定项目有关系的项目。我正在尝试这个我知道不正确的谓词:

let fetchRequest: NSFetchRequest<ItemA> = NSFetchRequest(entityName: "ItemA")
fetchRequest.predicate = NSPredicate(format: "itemA.itemB.itemBId == %d", Int(itemB.itemBId))

1 个答案:

答案 0 :(得分:1)

目前您正在使用itemA.itemB.itemBId,这里您正在使用itemA的新实体,因为您不需要提供其名称,因为此谓词将应用于itemA实体,因此您要么只能使用itemB.itemBId内部谓词,或者你可以使用SELF.itemB.itemBId(我不确定SELF或self,显然你可以查找它。)

所以我认为你可以得到itemA类型的项目,其关系itemB的ID为itemBId,如下所示:

let fetchRequest: NSFetchRequest<ItemA> = NSFetchRequest(entityName: "ItemA")
fetchRequest.predicate = NSPredicate(format: "itemB.itemBId == %d", Int(itemB.itemBId))