У меня есть файл GameScreen.m (это упрощенный фрагмент кода):
- (IBAction) onCellClick:(id) sender
{
points +=1;
self.myScore.text = [[NSNumber numberWithInt: points] stringValue];
//myScore is a label in GameScreenViewController xib
}
То есть, если щелкнуть ячейку в представлении, текстовая метка увеличится на 1. Пока все хорошо.
тогда, в том же коде, у меня есть таймер:
- (void) startTimer
{
[NSTimer scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(updateCounter:)
userInfo:nil
repeats:YES];
}
его метод updateCounter:
- (void) updateCounter:(NSTimer *)theTimer
{
int seconds;
static int count = 0;
count +=1;
timeElapsed = [[NSString alloc] initWithFormat:@"%d", seconds + count];
self.time.text = timeElapsed;
//time is a label in GameScreenViewController xib
}
дело в том, что метка "time" в этом случае не обновляется (каждый раз по 1 секунде). Я вставил AlertView, чтобы проверить, является ли метод startTimer правильным и правильно вызванным, и это действительно так (он показывает раздражающее представление предупреждений каждую секунду со значением timeElapsed). Тем не менее, я могу получить значение метки времени, которое будет изменено.
Почему моя метка очков обновляется после действия, а метка времени не обновляется каждую секунду? Можно ли как-нибудь обновить его, не включая мой код в ViewController?
// примечание: моя кодировка разбита на три файла: appDelegate переворачивает экраны и отправляет значения между ними; мои viewControllers - только окна и, наконец, мой класс GameScreen управляет всеми процессами. Из xib владелец файла подключается к ViewController, а представление подключается к классу GameScreen.
Большое спасибо за любые отзывы, пожалуйста, не стесняйтесь спрашивать о любом необходимом дополнительном коде.