Дублировать записи NSLog
2 biscuitstack [2011-04-30 22:46:00]
Я не знаю, могу ли я включить здесь код, который имеет значение, так как мой проект настолько велик, но есть ли какие-то типичные причины, по которым NSLog
повторял бы некоторые предупреждения и звонки на него в случаях, когда только один вызов/ошибка возникает?
В качестве примера у меня есть подкласс NSBox
, который содержит экземпляр другого класса в awakeFromNib
:
- (void) awakeFromNib {
burbControllerInstance = [[BurbController alloc] init];
if (burbControllerInstance) {
NSLog(@"init ok");
}
}
Я получаю NSLog
печать "init ok" дважды. Я не понимаю, почему этот подкласс будет "пробужден" дважды в любом месте моего проекта. Это часть более крупной проблемы, когда я не могу заставить переменные возвращать что-либо, кроме nil
из класса, в котором я создаю экземпляр. Мне интересно, могут ли двойные значения что-то с этим делать.
objective-c cocoa nslog awakefromnib
1 ответ
3 Решение Sebastian Dressler [2011-04-30 23:37:00]
Этот пост может быть полезен, i. е. один комментарий:
Также важно: awakeFromNib может быть несколько раз на если вы используете тот же контроллер для нескольких наконечников - скажем, вы используете делегат приложения в качестве владелец обоих приложений о Box и диалог настроек. Поэтому вам понадобится дополнительный тест защиты, если вы используете awakeFromNib для чего угодно, кроме инициализация объектов nib
Обновление: Более интересным может быть this, где автор упоминает, что awakeFromNib
получает вызов дважды. К сожалению, для этой конкретной проблемы нет реального ответа, но, возможно, некоторые основные идеи.
Обновление # 2: Еще одно потенциальное решение от stackoverflow.com: Просмотреть контроллер дважды вызывает awakeFromNib.