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

我想按字母顺序排列一个托pipe对象的数组。 他们需要sorting的属性是对象的名称(NSString),是其中一个托pipe属性。 目前,我把所有的名称在一个string数组,然后使用sortedNameArray = [sortedNameArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 然后枚举它们回到与对象的数组。 这两个名字是相同的,所以我真的需要能够通过一个属性进行sorting。 我应该怎么做呢?

使用NSSortDescriptor。 只要search它的文档,并有一些非常简单的例子,你可以复制权。 这是一个简单的例子:

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

就像你有一个sorting的数组。

你可以使用NSSortDescriptor来做到这一点,

例如。

 `NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc]initWithKey:@"distance" ascending:YES];` 

//我在这里代表距离sorting 你应该写自己的钥匙。

 NSArray * descriptors = [NSArray arrayWithObject:valueDescriptor]; NSArray *sortedArray=[yourArray sortedArrayUsingDescriptors:descriptors];`