我需要創建一個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對象可以存在於多個列表中,所以也許雙方都應該是多對多的類型。 –