iphone-sdk-3.0 - 如何通过对象图对托管对象的 NSMutableArray 进行排序

标签 iphone-sdk-3.0 sorting core-data nsmutablearray

我是 Apple 的 iPhone 3.0 SDK 支持 Core Data 的新手,我对 iPhone 开发也比较陌生。我的问题是关于比文档中涵盖的更“复杂”的排序。我怀疑我做出了一个不正确的基本假设。

如何通过包含在集合中更深层次的属性对预取的托管对象集合进行排序?

示例:
农场有一对多的牛仔 (Farm.cowboys)
牛仔有一对一的人(Cowboy.person)
人有姓氏 (Person.lastName)

整个对象图已经被获取,牛仔通过 UITableView 显示出来。现在,我如何按姓氏对牛仔进行排序?我需要重新获取它们吗?如果是,我该如何使用嵌套排序来做到这一点?

目前,我正在尝试对牛仔 ([Farm.cowboys allobjects]) 的 NSMutableArray 进行排序,这对于 Cowboy 的那些属性来说很好。但是我不确定在按 Cowboy.person.lastName 对 Cowboys 集合进行排序时如何进行这项工作?

最佳答案

如果您可以针对 10.6,则可以使用块来完成此操作。像这样:

- (NSArray *)sortedArray {
    return [originalArray sortedArrayUsingComparator:(NSComparator)^(id obj1, id obj2){
    NSString *lastName1 = [[obj1 person] lastName];
    NSString *lastName2 = [[obj2 person] lastName];
    return [lastName1 caseInsensitiveCompare:lastName2]; }];
}

关于iphone-sdk-3.0 - 如何通过对象图对托管对象的 NSMutableArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348748/

相关文章:

iphone-sdk-3.0 - iphone sdk 3.0中的MinimumOSVersion问题

r - 使混合排序区分大小写? [r]

javascript - 按数据属性对列表进行排序

ios - 如何升级iOS Core Data模型和数据

uitableview - 为什么我在尝试快速加载 tableview 时会收到 EXC_BAD_INSTRUCTION 错误?

ios - 有没有办法查看 iPhone 设备是否打开或关闭 "Keyboard Clicks"?

iphone - 您能否构建一个以 2.1 作为目标 SDK,但使用 3.0 功能的 iPhone 应用程序?

PHP排序问题

iphone - 对核心数据实体的 NSSet 进行排序 - Objective-C

iphone - 当 url 字符串参数有空格时,NSURL 值变为 null ..?