IOS---Blcok(截獲的自動變量)

先上兩段代碼:

//1
int val = 0;
void (^blk)(void) = ^{val = 1};
//2
id array = [[NSMutableArray alloc] init];
void (^blk)(void) = ^{
    id obj = [[NSObject alloc] init];
    [array addobject:obj];
};

稍微用過block的同學都知道,第一個程序編譯時會出錯,因爲該程序向截獲的代碼賦值了(如果要負值,就需要加上_block,變爲_block變量),而第二段代碼就不會報錯,如果用C語言來描述的話,那就是截獲NSMutableArray類對象用的結構體實例指針,雖然不能賦值,但是使用是沒有問題的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章