簡體   English   中英

為什么__block不向數組添加值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM