排序方法總結
普通遍歷與c中的陣列便利方式一樣,使用for語句對陣列元素逐一取出。
nsarray *array = [nsarray arraywithobjects:@"12",@"21",@"2121",nil];
nsuinteger count = [array count];
for(int i = 0;i < count;i++)
for (id obj in array)快速遍歷和.語法一樣,是利用了編譯器特性而進行的書寫簡化
[array enumerateobjectsusingblock:^(id obj, nsuinteger idx, bool *stop) ];相較於前兩個方法,block遍歷顯然更「物件導向」。
nsarray *array = [nsarray arraywithobjects:@"1",@"2",@"3",nil];
//把陣列裝入乙個迭代器中
nsenumerator *enumerator = [array objectenumerator];
//逐一遍歷
id obj = nil;
while (obj = [enumerator nextobject])
如果用數糖豆來模擬:
第一種方法是手動數糖豆,從盒子中將糖豆一顆一顆拿出來,數一數
第二種方法是僱了乙個工人,讓它幫你手動數糖豆
第三種方法,是讓糖豆自己數自己,然後把結果告訴你
第四種方法,是把糖豆全部倒入乙個「數糖豆機」,然後,讓機器給你數
有乙個排序規則制定委員會:nssortdescriptor
可以委託這個委員會派乙個「排序仲裁員」來幫我們的陣列排序
nssortdescriptor *someone = [nssortdescripior sortdescriptorwithkey:@」按哪個例項變數來排序」 ascending:yes //公升序排序排序以後生成乙個新的陣列
nsarray *newarray = [array sortedarrayusingdescriptors:someone]讓陣列排序,通過排序仲裁員「someone」
通過這個例子,我們更加可以看出:
1. 想讓物件或類返回乙個相同型別的物件,要用「讓誰幹什麼」這種句式
2. 想讓物件或類返回乙個不同型別的物件,要用「要誰的什麼」這種句式
如:
nsarray *newarray = [array sortedarrayusingdescriptors:someone]返回乙個相同型別的物件,用「讓array排序(用someone仲裁員)」句式
nsenumerator *enumerator = [array objectenumerator];
要array的裝滿物件的迭代器
NSArray中的資料進行排序
nsarray中的資料排序,經常是利用nssortdescriptor。組裝資料 array nsmutablearray alloc initwithcapacity 11 nsmutabledictionary dir6 nsmutabledictionary alloc initwithcap...
iOS NSSet與NSArray的區別
明天請假回家了,這個月定的部落格目標還沒達成,趕緊來補充上。這篇文章半個月前就想寫了,因為那天突然被人問道nsset,腦子一過電,發現寶寶跟本沒有用過好不啦,但是最近工作比較忙準備好的材料也沒有整理,下面我們趕緊看下nsset和nsarray的區別吧!首先,nsset和nsarray功能性質一樣,用...
NSArray排序的一些方法
大體上,oc中常用的陣列排序有以下幾種方法 sortedarrayusingselector sortedarrayusingcomparator sortedarrayusingdescriptors 1 簡單排序 sortedarrayusingselector 如果只是對字串的排序,可以利用s...