SomeClass *obj = [SomeClass alloc];
NSLog(@"%@", obj);
obj = [obj initWithNSNumber:[NSNumber numberWithInt:1]];
NSLog(@"%@", obj);
两个日志语句始终显示相同的地址。这实际上是我所期望的,但这是标准的 Objective-C 行为吗?我的意思是我可以指望这在不同的编译器/语言版本中是相同的吗?
我真正想要的是一个很好的教程,对象初始化和相关过程如何在 Objective-C 中真正工作。
编辑:在 Wain 回答问题后添加信息:如果初始化程序是这样实现的,我能否指望这在不同的编译器/语言版本中是相同的:
self = [super init];
if (self) {
//..
}
return self