繁体   English   中英

核心数据-查询多对多关系

[英]Core Data - query to-many relationship

我有一个核心数据模型,看起来像这样:

Author
======
- name
- bio

- books (to-many relationship)


Book
====
- title
- release date

- author (to-one relationship)  

我向用户呈现作者的表格视图,每个表格单元格代表一位作者,并显示他的name和他所写最新著作的title

为了显示我用一个作者列表NSFetchedResultsController具有以下NSFetchRequest

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Author"];
request.predicate = nil;
request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];
request.fetchBatchSize = 20;  

我的问题是:

如何获得每位作者的最新书名? 我可以在原始请求中获取该信息,还是需要执行其他一些请求?

如果您已经具有“ Author管理的对象,则无需执行另一个获取请求。 只需从Authorbooks属性创建一个排序数组。 为此,您可以使用NSSetsortedArrayUsingDescriptors:方法并传入按发布日期排序的描述符。

要将其作为同一请求的一部分,可以在存储最新书籍的Author对象上包括一个属性

Author
======
- name
- bio
- latestBook

- books (to-many relationship)

然后,要获取详细信息,只需使用author.latestBook.title

您还需要设置latestBook当您添加最新的书属性books属性。

或者,它可以是您根据最新的releaseDate从帐套中计算出的临时属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM