0

可能重复:
向 nil 发送消息?

如果一个引用NSMutableArray根本没有指向任何对象,因为没有实例化,为什么仍然可以调用实例方法而没有任何运行时错误?

NSMutableArray *foo = nil;
NSLog(@"[null count] is %i", [foo count]);

NSLog(@"[null count] again is %i", [(NSMutableArray *) nil count]);

上面的行都打印出来,0而不是导致错误的内存访问或导致没有实例的错误。

4

1 回答 1

1

直接来自Objective-C 编程语言: 在 Objective-C 中,向 nil 发送消息是有效的——它在运行时根本没有效果。

如果你进一步阅读,你会明白为什么[nil count]返回0

于 2012-04-30T06:56:22.023 回答