Почему не будет обновление UILabel в приложениях Amuck MinutesToMidnight iPhone - PullRequest
0 голосов
/ 03 февраля 2011

Я использую xcode и конструктор интерфейсов 3.2.5 и пытаюсь реализовать первое приложение с веб-сайта http://appsamuck.com/day1.html. Я считаю, что я выполнил все инструкции, но приложение не работает. Приложение учит, как создать метку countdownLabel (поверх черного фона) в представлении, и подключает countdownLabel через Interface Builder. Приложение запускает таймер в appDelegate:

  • (BOOL) приложение: (UIApplication *) приложение didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {

    timer = [NSTimer scheduleTimerWithTimeInterval: (1.0) target: self selector: @selector (onTimer) userInfo: nil повторяется: YES];

... }

На каждом таймере таймера метод appDelegate onTimer вызывает метод viewController для обновления countdownLabel строкой, которая идентифицирует часы, минуты и секунды до полуночи. Когда приложение запускается, countdownLabel никогда не обновляется. Вместо этого фон становится белым.

Когда я устанавливаю точки останова, я вижу, что таймер работает правильно (т.е. происходит периодический вызов onTimer) и вызывает метод для обновления countdownLabel. Однако до того, как произойдет первое событие таймера, выполняется вызов метода ViewController «loadView»:

  • (void) loadView { [countdownLabel setFont: [UIFont fontWithName: @ "DBLCDTempBlack" size: 128.0]]; countdownLabel.text = @ "I0A0IN6"; }

Когда я останавливаюсь в этом методе, я вижу, что содержимое countdownLabel равно 0x0. Если я продолжу выполнение до точки останова в методе appDelegate onTimer, экран станет белым. Затем этот метод вызывает метод для обновления countdownLabel, но метка никогда не изменяется (возможно, потому что значение countdownLabel остается значением 0x0).

Почему отсчет времени 0 * 0? Есть какая-то инициализация или соединение, которое мне не хватает?

1 Ответ

1 голос
/ 03 февраля 2011

Дважды проверьте, что вы выполнили эти шаги правильно (связав IBOutlet в Владельце файла с меткой в ​​Интерфейсном Разработчике)

Теперь нам нужно подключить Метку в Интерфейсном Разработчике к UILabel вфайл класса

Reopen Interface Builder

Выберите метку в представлении или в окне документа

Нажмите: Инструменты -> Инспектор подключений

Переместите указатель мышиНаведите курсор на пустой кружок справа от текста «Новый источник ссылок» (кружок изменится на «Плюс» (+))

Щелкните мышью, затем перетащите знак «Плюс» (+) на «Владелец файла» в окне документа.

Когда вы отпускаете, выберите countdownLabel во всплывающем списке

Нажмите: Файл -> Сохранить, затем закройте Interface Builder

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...