我目前正在尝试的代码没有给出任何错误,但在运行后没有任何内容被排序。这是我第一次实现目标-c,所以我希望这里有一些我不知道的东西。
NSSortDescriptor * sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"distanceOfPlace" ascending:true] ;
[surroundingRestaurants sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
答案 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]];