在MRC:block访问外部的变量
定义一个空的Block-----block保存在全局/常量区
Block内部访问外部局部变量
首先外部变量保存在栈区
当block内部访问外部变量的时候,这个变量依然会在栈区
(地址变化了,内存空间没变)
Block会保存在栈区
当访问完外部变量的时候,这个外部变量依然会在栈区
Block 修改外部变量
外部变量同样会保存在栈区在栈区
在内部去修改外部变量,把外部的变量用__block修饰,才可以修改,修改后的这个变量依然会在栈区在栈区
当变量在block内部修改完成之后,变量保存区没有发生变化,依然在栈区//在栈区
经过上面三步的折腾,
外部变量的地址始终没有发生变化,并且都是在栈区保存的
网友评论