您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页调用 nil 对象的 method 之后?

调用 nil 对象的 method 之后?

来源:二三四教育网

如果对象类型是 Object, 返回 nil; 如果是 int、 bool 等基本类型, 则返回 0.
如果调用 block 则会 crash.

那这几种情况中发生了什么?

首先调用 block 和其他几种不一样, 其他都是 msgSend 的模式, 而调用 block 是读取内存地址来执行的. nil 的 block 还是按照定义的 block 长度去读取地址, 自然读取了其他东西, segmentation fault.

msgSend 的调用模式是 runtime 来判断调用的对象是否为 nil, 从而返回和调用对象相对应的0值对象. id(0) = nil, 0, 0*(指针对象).

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务