【发布时间】:2011-02-23 22:21:35
【问题描述】:
在 CS193p 课程中,他们说在 init 方法中应该有一个 if 语句来检查 [super init] 是否有效:
if (self = [super init]) {
self.someProperty = parameter;
}
return self;
不明白为什么会这样,好像[super init]返回nil,方法本身也会返回nil,不管if语句的结果如何?
编辑:问题是;为什么将self = [super init] 放在 if 语句中。 (不是:为什么有self = [super init])
【问题讨论】:
-
[[super alloc] init]没有意义。你想要[super init]。 -
是的,抱歉,我直接将它输入到 stackoverflow 中。我的问题是为什么要把它放在 if 语句中,不像你链接到的问题是为什么有它,所以请取消你的投票以结束。
-
该问题的接受答案包含您的问题的答案:“不。实例变量的访问相对于 self 指针 (...) self 显然必须指向正确的内存块。
-
@Bavarious:好的,但我不会说完全重复。 (详情:Stackoverflow 作为搜索引擎的参考点)
标签: iphone objective-c