我试图通过double类型的字段对NSMutableArray对象进行排序

时间:2014-06-02 04:11:22

标签: objective-c sorting nsmutablearray

我目前正在尝试的代码没有给出任何错误,但在运行后没有任何内容被排序。这是我第一次实现目标-c,所以我希望这里有一些我不知道的东西。

NSSortDescriptor * sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"distanceOfPlace" ascending:true] ;
[surroundingRestaurants sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

2 个答案:

答案 0 :(得分:4)

sortedArrayUsingDescriptors返回一个新数组,而不是修改原始数组。如果您的对象是NSArray,这是您唯一的选择,因此您应该将其存储回原始数组中:

surroundingRestaurants = [surroundingRestaurants sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

但是,如果您有NSMutableArray,则可以使用sortUsingDescriptors,它会修改原始数组:

[surroundingRestaurants sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

按照他们的方式,[NSArray arrayWithObject:sortDescriptor]可以更简洁地写为@[sortDescriptor]

答案 1 :(得分:0)

我认为你的意思是......

NSArray *mySortedArray = [surroundingRestaurants sortedArrayUsingDescriptors:@[sortDescriptor]];

参考文档。 https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/SortDescriptors/Articles/Creating.html