0

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

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];

アドバイスありがとうございます!

4

1 に答える 1

0

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

使用する必要のあるオブジェクトのアドレスが必要な場合:

NSLog(@"self = %p", &self);
于 2010-05-01T18:31:36.007 に答える