NSArray中的資料進行排序

2021-08-26 11:32:07 字數 2881 閱讀 2673

nsarray中的資料排序,經常是利用nssortdescriptor。

//組裝資料

array=[[nsmutablearray alloc] initwithcapacity:11];

nsmutabledictionary *dir6=[[nsmutabledictionary alloc] initwithcapacity:1];

[dir6 setobject:@"曹磊" forkey:@"friendname"];

[dir6 setobject:@"曹磊" forkey:@"friendid"];

[array addobject:dir6];

[dir6 release];

nsmutabledictionary *dir=[[nsmutabledictionary alloc] initwithcapacity:1];

[dir setobject:@"王軍" forkey:@"friendname"];

[dir setobject:@"曹磊" forkey:@"friendid"];

[array addobject:dir];

[dir release];

nsmutabledictionary *dir1=[[nsmutabledictionary alloc] initwithcapacity:1];

[dir1 setobject:@"111" forkey:@"friendname"];

[dir1 setobject:@"曹磊" forkey:@"friendid"];

[array addobject:dir1];

[dir1 release];

nsmutabledictionary *dir2=[[nsmutabledictionary alloc] initwithcapacity:1];

[dir2 setobject:@"王興朝" forkey:@"friendname"];

[dir2 setobject:@"曹磊" forkey:@"friendid"];

[array addobject:dir2];

[dir2 release];

nsmutabledictionary *dir3=[[nsmutabledictionary alloc] initwithcapacity:1];

[dir3 setobject:@"wangjun" forkey:@"friendname"];

[dir3 setobject:@"曹磊" forkey:@"friendid"];

[array addobject:dir3];

[dir3 release];

nsmutabledictionary *dir4=[[nsmutabledictionary alloc] initwithcapacity:1];

[dir4 setobject:@"apk" forkey:@"friendname"];

[dir4 setobject:@"曹磊" forkey:@"friendid"];

[array addobject:dir4];

[dir4 release];

self.myarray=array;

[array release];

nslog(@">>>>>>排序前》");

for (int i=0; i<[self.myarray count]; i++)

nssortdescriptor *sorter = [[nssortdescriptor alloc] initwithkey:@"friendname" ascending:yes];

nsarray *sortdescriptors = [[nsarray alloc] initwithobjects:&sorter count:1];

nsarray *sortedarray = [self.myarray sortedarrayusingdescriptors:sortdescriptors];

[sorter release];

nslog(@"\n\n\n\n\n>>>>>>排序後》");

for (int i=0; i<[sortedarray count]; i++)

資料結果:

2011-04-21 18:31:36.556 sort[4041:707] >>>>>>排序前》

2011-04-21 18:31:36.567 sort[4041:707] 曹磊

2011-04-21 18:31:36.571 sort[4041:707] 王軍

2011-04-21 18:31:36.575 sort[4041:707] 111

2011-04-21 18:31:36.578 sort[4041:707] 王興朝

2011-04-21 18:31:36.582 sort[4041:707] wangjun

2011-04-21 18:31:36.585 sort[4041:707] apk

2011-04-21 18:31:36.589 sort[4041:707]

>>>>>>排序後》

2011-04-21 18:31:36.595 sort[4041:707] 111

2011-04-21 18:31:36.599 sort[4041:707] apk

2011-04-21 18:31:36.602 sort[4041:707] wangjun

2011-04-21 18:31:36.606 sort[4041:707] 曹磊

2011-04-21 18:31:36.610 sort[4041:707] 王興朝

2011-04-21 18:31:36.613 sort[4041:707] 王軍

NSArray進行漢字排序

由於nsarray並不直接支援對漢字的排序,這就要通過將漢字轉換成拼音完畢按a z的排序,這看起來是個頭疼的問題。由於牽扯到漢字轉為拼音,kmyhy 給出乙個較易實現的方法,獲取漢字的首字的首字母,如將 王 變成 w 當中他通過pinyinfirstletter函式獲取中文拼音。函式原理是 piny...

NSArray中資料排序方法

1函式介紹與例項 函式一 void sortusingselector sel comparator 適用於陣列中的元素自帶比較函式時 陣列排序函式,呼叫該函式的物件為陣列,comparator是呼叫該函式的陣列中的元素的方法。函式引數型別為陣列中的元素型別或者id型別,在呼叫時不需要傳遞引數,排序...

總結 NSArray的遍歷與排序

排序方法總結 普通遍歷與c中的陣列便利方式一樣,使用for語句對陣列元素逐一取出。nsarray array nsarray arraywithobjects 12 21 2121 nil nsuinteger count array count for int i 0 i count i for ...