我需要创建一个CoreData获取请求来抓取类型为“List”的ManagedObject,其中的属性包括:name(String),hitCount(Int),lastUpdated(Date)和contents(OrderedSet) 。现在我需要使用List对象的contents属性中的“Media”ManagedObjects填充我的TableView。当我已经有名单的一个实例是谁的内容,我想我已经试过......使用NSFetchedResultsController获取对象的属性
let fetchRequest = NSFetchRequest<Media>(entityName: "Media")
fetchRequest.predicate = NSPredicate(format: "SELF in %@", list.contents)
......这给了我什么是已在CoreData,但通过网络不能获得额外对象的任何NSFetchedResultsControllerDelegate更新调用并在我初次抓取后添加到数据库中。我也试过......
let fetchRequest = NSFetchRequest<Media>(entityName: "List")
fetchRequest.predicate = NSPredicate(format: "name == %@", list.name)
...返回列表项,我会得到NSFetchedResultsControllerDelegate更新,但只有列表对象本身的类型举动 - 不适用于需要TableView中的实际变化(删除/插入等),当它的内容属性发生变化时。有没有办法实现我想要做的事情?任何帮助是极大的赞赏。
从媒体到列表你有相反的关系吗?如果是这样,是一对多还是多对象:Media对象可以与多个List关联吗? (你需要的谓词在每种情况下都是不同的)。 – pbasdf
是的,存在反向关系。 List对象映射到Media对象的contents属性是多对多类型。截至目前,从Media对象到List对象的反向关系是一对一的类型,但现在考虑一个Media对象可以存在于多个列表中,所以也许双方都应该是多对多的类型。 –