如果对NSMutableArray
的引用根本没有指向任何对象,因为没有实例化,为什么仍然可以在没有任何运行时错误的情况下调用实例方法?
NSMutableArray *foo = nil;
NSLog(@"[null count] is %i", [foo count]);
NSLog(@"[null count] again is %i", [(NSMutableArray *) nil count]);
上述行打印0
而不是导致内存访问不正确或导致错误,表明没有实例。
答案 0 :(得分:1)
直接来自 Objective-C编程语言: In Objective-C, it is valid to send a message to nil—it simply has no effect at runtime.
如果您继续阅读,您会看到[nil count]
返回0
的原因。