Tag: init

在Objective-C中,为什么我应该检查self = 是不是nil?

我有一个关于在Objective-C中编写init方法的一般问题。 我发现无处不在(苹果的代码,书籍,开源代码等等)init方法应该在继续初始化之前检查self = [super init]是否为零。 init方法的默认Apple模板是: – (id) init { self = [super init]; if (self != nil) { // your code here } return self; } 为什么? 我的意思是什么时候init会返回零? 如果我在NSObject上调用init并得到零,那么一定是真的搞砸了吧? 在这种情况下,你甚至可以不写一个程序… 一个类的init方法可能返回nil是否真的很普遍? 如果是这样,在什么情况下,为什么?