Cha*_*iya 1 sorting objective-c nsmutablearray nssortdescriptor ios
我有一个包含多个字典的数组:
{
highRate = "600.49";
hotelId = 439607;
hotelRating = "2.5";
latitude = "12.97153";
longitude = "80.15096";
lowRate = "600.49";
name = "Hotel Kingss Park";
proximityDistance = "17.999475";
thumbNailUrl = "http://images.travelnow.com/hotels/7000000/6510000/6500300/6500296/6500296_3_t.jpg";
tripAdvisorRating = "4.0";
},
{
highRate = "990.0";
hotelId = 327929;
hotelRating = "2.0";
latitude = "13.06931";
longitude = "80.2706";
lowRate = "450.45";
name = "Mallika Residency";
proximityDistance = "1.6274245";
thumbNailUrl = "http://images.travelnow.com/hotels/3000000/2960000/2958400/2958303/2958303_2_t.jpg";
tripAdvisorRating = "2.5";
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用lowRate键对此数组进行排序.
NSSortDescriptor *rating_Sort = [NSSortDescriptor sortDescriptorWithKey:@"lowRate" ascending:NO];
NSArray *descriptorArray = [NSArray arrayWithObject:rating_Sort];
NSArray *sortedArray = [self.tblDisplayArray sortedArrayUsingDescriptors:descriptorArray];
Run Code Online (Sandbox Code Playgroud)
这里self.tblDisplayArray是我的数组.
但是没有在Result中获得正确的排序数组.
为什么会这样?
它们都是字符串,所以它试图按字母顺序排序,而不是数字排序.尝试:
NSSortDescriptor *desc = [[NSSortDescriptor alloc]initWithKey:@"doubleValue" ascending:YES];
Run Code Online (Sandbox Code Playgroud)
或使用NSNumbers代替NSString ... @()而不是@"".
@Rajesh是正确的,并非你的所有数字都是整数所以你应该使用doubleValue,我已经更新了代码!
希望这可以帮助!:)