0
我有一个自定义对象数组,我从服务器获取。NSSortDescriptor以随机格式排序数据
我想根据成本对数据进行排序。他们是我阵列中的一个totalCost
字段,其类型为NSString
。
现在我使用NSSortDescriptor
这样的:
NSSortDescriptor *sortDescriptrCost;
sortDescriptrCost = [[NSSortDescriptor alloc] initWithKey:@"totalCost"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptrCost,nil];
NSArray *sortedArray = [unchnagedOriginalData sortedArrayUsingDescriptors:sortDescriptors];
现在,当成本超过100
则排序好。但是,当数据包含cost
less than 100
排序breaks.Here是输出:
这是排定的顺序我得到:
113--totalCost
113--totalCost
120--totalCost
149--totalCost
182--totalCost
255--totalCost
259--totalCost
263--totalCost
263--totalCost
67--totalCost
80--totalCost
,因为它的一个字符串,它将按ascii值而不是数值排序。 – hola
不要将字符串排序,就好像它们是数字一样。 “8”>“6”>“1”,这就是为什么67之后,其次是80。 – Avi
你的总成本看起来像它的一个字符串..所以试试看。改变你的键值为“totalCost.intValue”或“totalCost.integerValue” –