实体B(Book)与实体D(描述)具有一对多的关系。这个想法是一本书对不同的语言有不同的描述。
我想根据给定语言的标题(D.title)对书籍进行排序(D.languageID)
如果B与D有一对一的关系,我会做类似的事情:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"d.title" ascending:YES];
当然,您可能会说,该模型不会阻止图书具有相同语言ID的许多描述。但在这种情况下,任何(例如第一个)描述都适合我。或者我之前可以获取所需的Description对象,但是如何在排序中使用它?
我的模特错了吗?在这种情况下,最好的解决方案是什么?
答案 0 :(得分:0)
你已经意识到,你不能通过一对多排序。 “最干净”的方法是在获取图书实体后实现您可以在内存中执行的 。一旦它在内存中,您可以通过便捷方法而不仅仅是数据进行排序。
例如,您可以在Book子类上创建一个名为-localTitle
的方法,该方法从正确的描述中返回相应的标题。从那里你可以对localTitle
进行排序。
基本上:
NSFetchedResultsController
来跟踪更改。localTitle
NSFetchedResultsController
。你可以取消NSFetchedResultsController
,但这会变得更复杂。