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

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

最佳答案

现在您使用的是itemA.itemB.itemBId,这里您使用的是itemA的一个新实体,因为您不需要给出它的名称,因为这个谓词将应用于itemA实体,所以您可以只在谓词中使用itemB.itemBId,也可以使用SELF.itemB.itemBId(我不确定是SELF还是SELF,显然您可以查找它)。
所以我想您可以得到itemA类型的项,其关系itemB的id是这样的:

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

关于ios - 使用Swift快速获取带有对象关系谓词的coredata,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46985734/

10-09 02:33