NSSortDescriptor
小于10.0时, distance
订购不正确。
代码(按距离排序的数组):
// Order Array by Distance (Distance = NSString)
NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"distance" ascending:YES];
[_contentData sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];
正确订购(当距离值> 10.0时):
(
{
distance = "11.256649";
},
{
distance = "257.428821";
},
{
distance = "4534.256851";
}
)
错误的排序(当任何距离值<10.0时):
(
{
distance = "252.428821";
},
{
distance = "4514.256851";
}
{
distance = "8.362996"; // Wrong ordering when distance < 10.0
},
)
答案 0 :(得分:1)
我不认为这里的问题是该值小于10.看起来您的值是字符串,并且逐个字符地排序。 “8”在“4”之后出现,所以它稍后会被订购。
如果将字符串值转换为NSNumbers,则应正确排序。