如何基于一个属性对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];`