iOS陣列enumerateXX方法探索

2021-08-28 14:37:55 字數 1155 閱讀 2940

今天看到**,突然突發奇想,想要探索乙個問題:

nsarray的enumerateobjectsusingblock方法到底是同步的還是非同步的,如果我們想要在block內部修改外部的值,是否要使用__block來修飾

這裡寫了乙個簡單的demo來驗證:

- (void)viewdidload 

- (void)testmethod ];

nslog(@"外部結束:陣列=%@,==>%zd",arrm,self.count++);

}

log如下:

2018-09-30 14:02:14.144150+0800 testenumerate[10209:289132] 內部操作 ==>0

2018-09-30 14:02:14.144277+0800 testenumerate[10209:289132] 內部操作 ==>1

2018-09-30 14:02:14.144363+0800 testenumerate[10209:289132] 內部操作 ==>2

2018-09-30 14:02:14.144442+0800 testenumerate[10209:289132] 內部操作 ==>3

2018-09-30 14:02:14.144517+0800 testenumerate[10209:289132] 內部操作 ==>4

2018-09-30 14:02:14.144592+0800 testenumerate[10209:289132] 內部操作 ==>5

2018-09-30 14:02:14.144666+0800 testenumerate[10209:289132] 內部操作 ==>6

2018-09-30 14:02:14.144783+0800 testenumerate[10209:289132] 外部結束:陣列=(

1,2,

3,4,

5,6,

7),==>7

可以得出結論:

enumerateobjectsusingblock方法是同步的,

而且,想要在block內部修改外部的物件,也不需要__block修飾

IOS 陣列使用

arc下 定義陣列 nsmutablearray tt和nsmutablearray tb 當nsmutablearray tb nsmutablearray alloc init nsdictionary d nsdictionary dictionarywithobject 123 forkey...

IOS陣列相關

1 建立陣列 建立乙個空的陣列 nsarray array nsarray array 建立有1個元素的陣列 array nsarray arraywithobject 123 建立有多個元素的陣列 array nsarray arraywithobjects a b c nil nil nsarr...

iOS陣列排序

一 利用nssortdescriptor物件陣列排序 nssortdescriptor可以根據陣列中物件的屬性來排序,為排序陣列的要排序的屬性建立nssortdescriptor物件,將所有這些物件放入乙個陣列中,該陣列將會在後面用作引數。使用nsarray類的sortedarrayusingdes...