Повторяющиеся записи NSLog

Я не знаю, могу ли я включить сюда код, который важен, так как мой проект очень большой, но есть ли типичные причины, почему NSLog будет повторять некоторые предупреждения и вызовы к нему в тех случаях, когда происходит только один вызов / ошибка?

Как пример, у меня есть подкласс NSBox который запускает экземпляр другого класса на awakeFromNib:

- (void) awakeFromNib {
    burbControllerInstance = [[BurbController alloc] init];
    if (burbControllerInstance) {
        NSLog(@"init ok");
    }
}

я получил NSLog печатая "init ok" дважды. Я не понимаю, почему этот подкласс был бы "пробужден" дважды где-нибудь в моем проекте. Это часть большой проблемы, когда я не могу получить переменные, которые возвращают что-либо, кроме nil из класса я создаю экземпляр. Мне интересно, возможно, двойные значения как-то связаны с этим.

1 ответ

Решение

Этот пост может быть полезным, то есть один комментарий:

Также важно: awakeFromNib может вызываться несколько раз на контроллере, если вы используете один и тот же контроллер для нескольких перьев - скажем, вы используете делегата приложения в качестве владельца как окна About Box, так и диалогового окна настроек. Так что вам понадобится дополнительный защитный тест, если вы используете awakeFromNib для чего угодно, кроме инициализации объектов nib

Обновление: гораздо интереснее может быть это, где автор упоминает, что awakeFromNib вызывается дважды. К сожалению, нет реального ответа на эту конкретную проблему, но, возможно, некоторые основные идеи.

Обновление № 2: еще одно потенциальное решение от stackru.com: View Controller дважды вызывает awakeFromNib.

Другие вопросы по тегам