Iphone 如何基于一个属性对对象数组进行排序

Iphone 如何基于一个属性对对象数组进行排序,iphone,objective-c,ios,sorting,nsarray,Iphone,Objective C,Ios,Sorting,Nsarray,我正在尝试按字母顺序对托管对象数组进行排序。它们需要排序的属性是对象的名称(NSString),它是托管属性之一。目前,我将所有名称放入一个字符串数组中,然后使用sortedNameArray=[sortedNameArray sortedArray usingSelector:@selector(localizedCaseInsensitiveCompare:)]

我正在尝试按字母顺序对托管对象数组进行排序。它们需要排序的属性是对象的名称(NSString),它是托管属性之一。目前,我将所有名称放入一个字符串数组中,然后使用
sortedNameArray=[sortedNameArray sortedArray usingSelector:@selector(localizedCaseInsensitiveCompare:)]使用NSSortDescriptor。只要在上面搜索文档,就可以复制一些非常简单的示例。以下是一个简化的示例:

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

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

您可以使用NSSortDescriptor实现这一点

例如

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

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

看一看。我想它会对你有所帮助。它很有帮助,但很复杂-我很难理解它,谢谢。试试这个。。非常感谢你,这将节省我的时间,这意味着很多,当最后期限是在一个半星期。没问题。很高兴我能帮忙。是的,谢谢你。。。有时,一个不错的例子是处理这种过度膨胀的Objective-C编码的唯一方法。
NSArray * descriptors = [NSArray arrayWithObject:valueDescriptor];
NSArray *sortedArray=[yourArray sortedArrayUsingDescriptors:descriptors];`