快速遍歷 for in

2021-07-02 18:16:53 字數 954 閱讀 9522

// 快速遍歷  for...in...

nsarray *ages =@[@12, @23,@22, @16,@34];

// 注意快速遍歷過程中,不允許需改元素個數

// 盡量保證快速遍歷的集合中的元素型別一致

for (nsnumber *nin ages)

nsdictionary *dic =@;

// 快速遍歷對於字典來說每次得到的都是鍵

for (nsstring *stringin dic)

// 宣告不可變陣列進行排序

nsarray *namesarray =@[@"baoge",@"feifan", @"yangyang",@"gege", @"fage",@"age"];

// 使用變數,儲存方法

// sel s = @selector(compare:);

// 使用選擇器給不可變陣列進行排序,需要接受返回值自動公升序

namesarray = [namesarray sortedarrayusingselector:@selector(compare:)];

nslog(@"sorted %@", namesarray);

// 陣列不可變是指物件不可變,指標重指向

nsmutablearray *namesmutablearray = [nsmutablearrayarraywitharray:namesarray];

// 可變陣列排序,使用的方法是沒有返回值的

[namesmutablearray sortusingselector:@selector(compare:)];

nslog(@"sorted %@", namesmutablearray);

// 排序方法的區分

// 1.返回值(不可變有,可變無)

// 2.方法名(不可變有array,可變沒有)

for in 快速列舉

突然研究了下for迴圈和for in 的區別,之前一直覺得這兩者是相同的。for in實際上是快速列舉,跟for迴圈意義上還是有區別的。你去研究一下列舉。oc的for in 快速列舉遍歷的時候是按照元素在容器內的順序 nsarray中元素的順序是你新增的順序,nsset和nsdictionry中元素...

for in遍歷和for 迴圈

在做收藏功能的時候,使用的是把資料儲存到nsuserdefaults 中。過程是,現將要儲存的資訊用自定義的乙個model 儲存,再用nsmutablearray 把model 新增到陣列中,把陣列儲存到 nsuserdefaults中,使用的方法是 nsuserdefaults user nsus...

for in遍歷的順序

雖然ecmascript規定了物件的遍歷順序是由物件定義時屬性的書寫順序決定的.譯者注 es5已經對遍歷機制做了調整,重新規定 屬性遍歷的順序是沒有被規定的 大部分瀏覽器都依照這個規定,先新增的屬性先被遍歷 除了從原型上繼承的屬性 譯者注 chrome和opera已經遵循了es5的新規定,具體 請看...