【发布时间】:2010-06-03 01:08:10
【问题描述】:
// A : Parent
@implementation A
-(id) init
{
// change self here then return it
}
@end A
A *a = [[A alloc] init];
一个。只是想知道,如果 self 是局部变量还是全局变量?如果它是本地的,那么 self = [super init] 在 init 中的意义何在?我可以成功定义一些局部变量并像这样使用,为什么我需要将它分配给self。
-(id) init
{
id tmp = [super init];
if(tmp != nil) {
//do stuff
}
return tmp;
}
b.如果[super init] 返回一些其他对象实例并且我必须覆盖self 那么我将无法再访问A 的方法,因为它将是全新的对象?我说的对吗?
c。 super 和 self 指向同一个内存,它们之间的主要区别在于方法查找顺序。我说的对吗?
抱歉,没有 Mac 可以尝试,暂时学习理论...
【问题讨论】:
标签: objective-c