awakeFromNib和loadView执行不同的实例

时间:2010-05-01 17:52:58

标签: iphone uiviewcontroller instantiation nib

我想了解原因:

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 :(得分:0)

因为当NSLog记录一个对象时,它实际上会将- description消息发送给该对象。您正在打印的地址实际上是返回的NSString对象的地址,其中包含实例的文本描述。由于每次发送消息时都会返回一个新字符串,因此您将获得不同的地址。

如果您需要使用对象的地址:

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