block探究之數(shù)組

今天在寫block的時候,發(fā)現(xiàn),在內部修改可變數(shù)組的時候,是不需要添加任何修飾的。如下:

NSMutableArray *arr = [NSMutableArray array];
        [arr addObject:@"1"];
        void(^block)(void) = ^{
            [arr addObject:@"2"];
            NSLog(@"%@",arr);
        };
        block();

但是,在修改不可變數(shù)組(NSArray)是必須添加__block的。

__block NSArray *arr1 = [NSArray array];
        arr1 = @[@"cc"];
        void(^block)(void) = ^{
            arr1 = @[@"cvv"];
            NSLog(@"%@",arr1);
        };
        block();

如果不寫,編譯器是直接報錯了。

__block對不可變數(shù)組做修改時進行了深拷貝??勺償?shù)組本來就是可以改變的。

block 經(jīng)典題目:https://juejin.cn/post/6844904041474949133

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容