SomeClass *obj = [SomeClass alloc];
NSLog(@"%@", obj);
obj = [obj initWithNSNumber:[NSNumber numberWithInt:1]];
NSLog(@"%@", obj);
両方のログ ステートメントは、常に同じアドレスを表示します。これは実際に私が予想したことですが、これは標準の Objective-C の動作ですか? つまり、これは異なるコンパイラ/言語バージョンでも同じであると数えることができますか?
私が本当に欲しいのは、Objective-C でオブジェクトの初期化と関連プロセスが実際にどのように機能するかについての優れたチュートリアルです。
編集:ウェインの回答が質問に情報を追加した後:初期化子が次のように実装されている場合、これは異なるコンパイラ/言語バージョンで同じになると数えることができますか:
self = [super init];
if (self) {
//..
}
return self