可能重复:
In Objective-C why should I check if self = [super init] is not nil?
在我正在阅读的Objective-C书中,据说当[init]
消息发送到NSObject
时,有时它可能会返回nil
,我们应该检查返回值,在向可能最终成为nil
的内容发送更多消息之前。
self = [super init];
if (self) {
do stuff
}
我问你,NSObject
无法init
本身需要做什么?
编辑:问题专门处理YourClass:NSObject。
的实例答案 0 :(得分:8)
NSObject
本身永远不会在init
上返回nil,但是从其继承的其他类可能是,所以始终检查init
的返回值被认为是一种好习惯。例如,这将返回nil:
[[NSData alloc] initWithContentsOfFile:@"path/to/a/file/that/does/not/exist"];