Ios 使用NSFetchedResultsController获取对象';s属性
我需要发出一个coredatafetch请求,获取类型为“List”的ManagedObject,其属性包括:name(String)、hitCount(Int)、lastUpdated(Date)和contents(OrderedSet)。现在,我需要在列表对象的contents属性中使用“Media”ManagedObjects填充TableView。当我已经有了一个列表的实例谁的内容我想要我已经尝试Ios 使用NSFetchedResultsController获取对象';s属性,ios,core-data,nsfetchedresultscontroller,nsfetchrequest,Ios,Core Data,Nsfetchedresultscontroller,Nsfetchrequest,我需要发出一个coredatafetch请求,获取类型为“List”的ManagedObject,其属性包括:name(String)、hitCount(Int)、lastUpdated(Date)和contents(OrderedSet)。现在,我需要在列表对象的contents属性中使用“Media”ManagedObjects填充TableView。当我已经有了一个列表的实例谁的内容我想要我已经尝试 let fetchRequest = NSFetchRequest<Media>
let fetchRequest = NSFetchRequest<Media>(entityName: "Media")
fetchRequest.predicate = NSPredicate(format: "SELF in %@", list.contents)
let fetchRequest=NSFetchRequest(entityName:“媒体”)
fetchRequest.predicate=NSPredicate(格式:“SELF in%@”,list.contents)
…这为我提供了CoreData中已有的内容,但没有任何NSFetchedResultsControllerDelegate更新通过网络调用获得并在初次抓取后添加到数据库的其他对象。我也试过
let fetchRequest = NSFetchRequest<Media>(entityName: "List")
fetchRequest.predicate = NSPredicate(format: "name == %@", list.name)
let fetchRequest=NSFetchRequest(entityName:“列表”)
fetchRequest.predicate=NSPredicate(格式:“name==%@”,list.name)
…返回列表项,我将获得NSFetchedResultsControllerDelegate更新,但仅列表对象本身的类型为move,而不是在其内容属性更改时应用于TableView(删除/插入等)所需的实际更改。有没有办法实现我的目标?非常感谢您的帮助。如果反向关系为一,称为
列表关系
,则您可以使用:
let fetchRequest = NSFetchRequest<Media>(entityName: "Media")
fetchRequest.predicate = NSPredicate(format: "listRelationship == %@", list)
let fetchRequest=NSFetchRequest(entityName:“媒体”)
fetchRequest.predicate=NSPredicate(格式:“listRelationship==%@”,列表)
作为FetchedResultsController的底层获取。如果关系为多,请将谓词更改为“ANY listRelationship==%@”。在这两种情况下,都很难确保FRC使用的排序顺序与列表
对象中的SensorDeredSet匹配
如果这对您很重要,您将需要使用index属性显式地建模排序顺序。如果关系为一,则可以将
索引
属性添加到媒体
实体,但如果关系为多个,则生活会变得更加困难:一个媒体
对象可能是一个列表中的第一个项目,但却是另一个列表中的最后一个项目-因此索引与特定列表和特定媒体项目相关。在这种情况下,添加另一个实体“ListEntry”,该实体具有索引
属性,并与列表
和媒体
(每个都有多个反向关系)。媒体与列表之间是否存在反向关系?如果是,它是一个还是多个:一个媒体对象可以与多个列表相关吗?(您需要的谓词在每种情况下都不同)。是的,存在相反的关系。列表对象映射到媒体对象的内容属性是对多类型。到目前为止,从媒体对象到列表对象的反向关系是一对一的类型,但现在想想看,媒体对象可以存在于多个列表中,因此可能双方都应该是一对多的类型。