block內(nèi)部不能直接修改外部變量,因為block內(nèi)部訪問外部變量的時候氮帐,是以const的方式進行拷貝到block內(nèi)部歇万,經(jīng)過const修飾的變量是只讀的嘲更,所以不能修改凝颇。修改的話,會出現(xiàn)編譯錯誤疹鳄。用_block修飾的變量不再以const的格式拷貝而是直接copy到堆區(qū)拧略,_block的作用就是讓系統(tǒng)忽視Block改變外部變量的問題,還可以將變量用staic修飾變成全局變量瘪弓。
block用關鍵字copy是因為垫蛆,blcok存在于棧區(qū),棧區(qū)存在的對象隨時都有可能被銷毀腺怯,用的時候需要copy一份到堆區(qū)袱饭。