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」 –