Я использую 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? Есть какая-то инициализация или соединение, которое мне не хватает?