我有一个有多个点的托管对象导览。 当我加载点以在表格中显示它们时,我将其用作我的数据tour.points。
每个点都有一个字段' level'表明它们应该出现的顺序。 如何根据point.level自动排序tour.points?
我是否需要使用排序说明进行单独的提取,还是有直接的方法?
答案 0 :(得分:2)
使用Core Data填充表格视图的最佳方法是NSFetchedResultsController
。 FRC有一个获取请求,您可以附加谓词和排序描述符。
在检查"使用核心数据"时,您可以从Xcode模板中复制一些现成的示例代码。
在获取的结果控制器创建方法中,添加谓词和排序描述符。我假设您正在获取一个名为Point
的实体,该实体与Tour
具有一对一的关系。
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"tour = %@", tourObject];
fetchRequest.sortDescriptors = @[[NSSortDescriptor
sortDescriptorWithKey:@"level" ascending:YES]];
答案 1 :(得分:0)
根据我的经验,我相信你必须单独排序。作为参考,您可以使用NSPredicate过滤数组:
我希望你将要做的事情将是这样的:
NSSortDescriptor *level = [[NSSortDescriptor alloc] initWithKey:@"level" ascending:YES];
NSArray *pointSortedByLevel = [results sortedArrayUsingDescriptors:[NSArray arrayWithObjects:level, nil]];
其中,结果是您的对象游览中找到的NSArray积分