我是 Ob-C 的新手,我很难理解为什么返回的值不是 nil,正如“if 语句”所测试的那样。
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
此方法首先调用父初始值设定项。执行父级的初始化程序可确保正确初始化任何继承的实例变量。您必须将执行父级的 init 方法的结果分配回自身,因为初始化程序有权更改对象在内存中的位置(意味着其引用将更改)。如果 parent 的初始化成功,则返回的值将是 non-nil,如 if 语句所测试的那样。正如注释所示,在后面的块内,您可以为您的对象放置您自己的自定义初始化代码。这通常涉及分配和初始化类中的实例变量。
粘贴来自 Stephen Kochan“Objective-C 编程,第四版”的代码和文本