awakeFromNib и loadView выполняются для разных экземпляров - PullRequest
0 голосов
/ 01 мая 2010

Я пытаюсь понять, почему:

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

в awakeFromNib печатает значение, отличное от того же NSLog в viewDidLoad?

Это не большая проблема, потому что мне не нужен awakeFromNib, но я бы хотел понять, как он работает.

Код, который создает контроллер, следующий:

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

Спасибо за любые советы!

1 Ответ

0 голосов
/ 01 мая 2010

Потому что, когда NSLog регистрирует объект, он фактически отправляет объекту сообщение - description. Адрес, который вы печатаете, фактически является адресом возвращенного объекта NSString, содержащего текстовое описание экземпляров. Так как новая строка возвращается каждый раз при отправке сообщения, вы получаете другой адрес.

Если вы хотите использовать адрес объекта, который вам нужно использовать:

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