我来自 C++ 世界,所以分配的概念this
让我不寒而栗:
this = new Object; // Gah!
但在 Objective-C 中有一个类似的关键字 ,self
这是完全可以接受的:
self = [super init]; // wait, what?
init
许多示例 Objective-C 代码在例程中使用上述行。我的问题:
1)为什么分配self
有意义(诸如“因为语言允许”之类的答案不算数)
2) 如果我不在self
我的init
例程中分配会发生什么?我是否将我的实例置于某种危险之中?
3)当以下if
语句失败时,它是什么意思,我应该怎么做才能从中恢复:
- (id) init
{
self = [super init];
if (self)
{
self.my_foo = 42;
}
return self;
}