什么都不会发生。
SomeClass *someObject;
someObject = nil;
[someObject doSomeThing];
向 nil 发送了 doSomeThing;OC 中 nil 是被当做0定义的,也就是说 runtime 要去获取这个 nil 的信息,会去读取内存中 0 的位置,这肯定是不允许的,会返回 nil ,0,0.0 等数据,根据返回值类型。
比较容易混淆的是,僵尸对象,僵尸对象并不是 nil 僵尸对象是你的 object 被销毁或者用于其他地方了,但是指向它的指针还在,会发生想一个 object 发送一个它没有的方法。











网友评论