網路上已經有很多排序的相關資料,
特別記錄一下自己最近用到的兩個排序技巧:
一、排序包含數字的NSMutableArray
一個包含有多個數字的mutable array:
排序前array:
[3,2,1,2]
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]; [array sortUsingDescriptors:[NSArray arrayWithObjects:sort, nil]];
排序後array:
[1,2,2,3]
二、排序包含多個NSDictionary的mutable array
一個mutable array中包含多個dictionary,每個dict裡面有一個key叫做”number”
排序前numberArray:
[{
number:”5″
},
{
number:”1″
},
{
number:”3″
}
]
目標:依照number這個key來排序
NSSortDescriptor *sortByNumber = [NSSortDescriptor sortDescriptorWithKey:@"number" ascending:YES]; [numberArray sortUsingDescriptors:[NSArray arrayWithObjects:sortByNumber, nil]];
排序後numberArray:
[{
number:”1″
},
{
number:”3″
},
{
number:”5″
}
]
2016/10/20更新:
若依照number排序後還想要設定第二順位的key排序,
只需再設定一組NSSortDescriptor,
再加入sortUsingDescriptors中。
e.g.
NSSortDescriptor *sortByNumber = [NSSortDescriptor sortDescriptorWithKey:@"number" ascending:YES]; NSSortDescriptor *sortByOrder = [NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]; [numberArray sortUsingDescriptors:[NSArray arrayWithObjects:sortByNumber, sortByOrder, nil]];