/ / awakeFromNibとloadViewは異なるインスタンスで実行-iphone、uiviewcontroller、instantiiation、nib

iphone、uiviewcontroller、インスタンス化、nib - awakeFromNibとloadViewは異なるインスタンスに対して実行されます。

私は理由を理解しようとしています:

NSLog(@"self = %p", self);

awakeFromNibではviewDidLoadの同じNSLogとは異なる値を出力しますか?

これはawakeFromNibを必要としないため、大きな問題ではありませんが、どのように機能するかを理解したいと思います。

コントローラーを作成するコードは次のとおりです。

    MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
myViewController.image = tmpImage;
[self.navigationController pushViewController:myViewController animated:YES];
[myViewController release];

アドバイスをありがとう!

回答:

回答№1は0

NSLogはオブジェクトをログに記録するときに、実際に - description オブジェクトへのメッセージ。 印刷するアドレスは、実際にはインスタンスのテキスト記述を含む返されたNSStringオブジェクトのアドレスです。メッセージが送信されるたびに新しい文字列が返されるため、異なるアドレスを取得します。

オブジェクトのアドレスが必要な場合は、次を使用する必要があります。

NSLog(@"self = %p", &self);