[英]why does __block not adding values to array
我正在枚舉塊內的范圍並將值存儲在數組內。 我期望使用__block應該將block內部的值存儲到數組中?
__block NSMutableArray *array;
[indexSet enumerateRangesUsingBlock:^(NSRange range,BOOL * stop ) {
[array addObject:@(range.location)];
[array addObject:@(range.length)];
NSLog(@"location is %d, %ld", range.location, range.length);
}];
NSLog(@"%@",array );
但這導致
位置是4,2位置是8,2位置是14,2
和數組
(空值)
我期望數組將被值填充。
您必須對其進行初始化,剛剛聲明的數組為nil
:
__block NSMutableArray *array = [NSMutableArray array];
(Swift編譯器會拋出一個錯誤...😉)
__block NSMutableArray * array = [NSMutableArray array];
它確實工作正常。
但是,當我將數組聲明為屬性時,塊變得多余。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.