如何基于一个属性对NSArray对象进行排序

Jac*_*e11 30 sorting iphone objective-c nsarray ios

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

Dan*_*eek 83

使用NSSortDescriptor.只需在其上搜索文档,您就可以在其中复制一些非常简单的示例.这是一个简化的例子:

NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:@"MyStringVariableName" ascending:YES];
NSArray *descriptors = [NSArray arrayWithObject:valueDescriptor]; 
NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:descriptors]; 
Run Code Online (Sandbox Code Playgroud)

就像你有一个排序的数组.

  • 非常感谢,这将节省我的时间,这意味着在截止日期为一周半的时候. (3认同)
  • 没问题.很高兴我能帮助你. (3认同)