block属性用copy修饰(将栈block复制一份到堆block,之后将堆block的地址赋值给block指针,防止函数调用后释放了栈block后再调用block出现野指针错误)。
这里使用person对象做说明
从图中可以看出person对象对block有强引用
之后,从下图中可以看出,又在block内部有个强指针p
这样就形成了循环引用,可以定义一个相同类型的弱指针来解决循环引用
block属性用copy修饰(将栈block复制一份到堆block,之后将堆block的地址赋值给block指针,防止函数调用后释放了栈block后再调用block出现野指针错误)。
这里使用person对象做说明
从图中可以看出person对象对block有强引用
之后,从下图中可以看出,又在block内部有个强指针p
这样就形成了循环引用,可以定义一个相同类型的弱指针来解决循环引用