iphone - 如何根据一个属性对对象的 NSArray 进行排序

标签 iphone objective-c ios sorting nsarray

我正在尝试按字母顺序对一组托管对象进行排序。它们需要排序的属性是对象的名称 (NSString),它是托管属性之一。目前,我将所有名称放在一个字符串数组中,然后使用 sortedNameArray = [sortedNameArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 然后将它们枚举回包含对象的数组中。当两个名字相同时,这就会分崩离析,所以我真的需要能够按一个属性排序。我应该怎么做?

最佳答案

使用 NSSortDescriptor。只需搜索它的文档,那里有一些非常简单的示例,您可以直接复制过来。这是一个简化的示例:

NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:@"MyStringVariableName" ascending:YES];
NSArray *descriptors = [NSArray arrayWithObject:valueDescriptor]; 
NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:descriptors]; 

就像这样,您就有了一个排序数组。

关于iphone - 如何根据一个属性对对象的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6256046/

相关文章:

iphone - 我必须这样投吗?

objective-c - UIButtons 不工作

ios - 如何访问 objective-c 文件中的 swift 类

iphone - UITextField:使其更高并将输入文本垂直居中

ios - 如何正确设置UIRequiredDeviceCapability?

iphone - UIView 大小不接受大于 17000 像素的大小

ios - 需要有关 NSString 的帮助

ios - 如何在 AppDelegate 中为导航 View Controller 和标签栏 Controller 设置 rootViewController

iphone - 尝试将 NSUInteger 与枚举一起使用 (<<)

ios - 应用程序被拒绝,原因是应用程序不支持 IPV6 协议(protocol)