调用一个赋值为nil的block会咋样?
2019-09-27 本文已影响0人
世玉茹花
~ 如果调用一个赋值为空的 block,会发生什么情况?
-->直接 crash、block 是一个特殊的对象、赋值为 NULL 与 nil 都会闪退。
~闪退那个地址值address是多少?
-->0x10
~为什么会是0x10呢?
------>:
2018515100442022.jpg0x10是十六进制,也就是struct基地址后的第16个字节,其中void *类型占8个字节,int类型占4个字节,所以0x10的地址就是FuncPtr的地址,而address=0x10的问题也正是对值为nil的block强行调用导致的。
0x0地址就是指向isa函数指针字段的地址,这个错误发生的原因就是调用isa造成的。