Рефакторинг делегата приложения

Я новичок в Obj-C и Xcode 4, и в настоящее время я просматриваю "Ваше первое приложение для Mac" на веб-сайте Mac Dev. Мне удалось пройти основную часть, но я борюсь с разделом «Рефакторинг делегата приложения».

Я создал новый класс (для использования в качестве контроллера), добавил набор объектов в этот новый класс, установил соединения из класса с ползунком, кнопкой отключения звука и текстовым полем, и я подключил новый объект класса к делегату приложения. файл интерфейса.

К сожалению, экземпляр класса track никогда не создается, и поэтому программа не работает, так как функция awakeFromNib никогда не вызывается. Я попытался поместить его как в файл делегата приложения, так и в новый класс контроллера.

Где я ошибаюсь???


person Alistair Barker    schedule 26.08.2011    source источник


Ответы (2)


Вам нужно либо создать экземпляр вашего нового класса в IB, либо вам нужно создать его программно в вашем объекте AppDelegate (обычно в init или awakeFromNib). Вам нужно иметь указатель на этот объект в вашем AppDelegate. Если вы создаете новый объект в ИБ, вы подключаете его к указателю Track* в ИБ. Если вы делаете это в коде, это что-то вроде:

в файле .h:

TrackClass *track;

в .m файле:

track = [[Track alloc] init];

Что ты сделал?

person Flyingdiver    schedule 26.08.2011
comment
Поскольку мое исходное сообщение мне действительно удалось заставить его работать, поместив его в инициализацию моего класса контроллера, однако в учебнике предлагается использовать awakeFromNib в делегате приложения, который, похоже, не вызывается. - person Alistair Barker; 27.08.2011

У меня была та же проблема, когда я опробовал учебник, и обнаружил, что проблема связана с моей реализацией awakeFromNib

Неправильный код:

- (void)awakeFromNib:(NSNotification *)aNotification

Правильный код

- (void)awakeFromNib

Не должно быть никаких аргументов, передающих реализацию awakeFromNib.

person picaso    schedule 03.04.2012