NSTimer Crashes Применение - PullRequest
       0

NSTimer Crashes Применение

0 голосов
/ 10 февраля 2011

Почему следующий код вызывает сбой моего кода?

NSTimeInterval timeLeft = [NSDate timeIntervalSinceDate: [[NSUserDefaults standardUserDefaults] objectForKey: @ "lastDate"]] [[[timer userInfo] objectForKey: @ "theLabel "] text: [NSString stringWithFormat: @" Оставшееся время:% d ", waitTime]];// Устанавливаем текст метки

Могу подтвердить, что с переменными проблем нет.userInfo - это словарь, который передается через NSTimer.

Спасибо!

1 Ответ

2 голосов
/ 10 февраля 2011

Если вы аккуратно вставили свой код, эта строка кода обязательно выдаст исключение:

[[[timer userInfo] objectForKey:@"theLabel"] text:[NSString stringWithFormat:@"Time Remaining: %d", waitTime]];

Вы пытаетесь вызвать метод -text: для некоторого объекта, который предположительно является UILabel. Но нет такого метода. Компилятор должен предупредить вас, что он не знает ни одного селектора с именем -text:. Вместо этого вы почти наверняка хотите -setText:.

Вы также ссылаетесь на переменную с именем waitTime, но в предыдущей строке была создана переменная с именем timeLeft. Предполагая, что вы действительно хотели сослаться на timeLeft, у вас есть еще одна проблема: timeLeft является двойным, но вы печатаете его как целое число. Если вам нужно целое число секунд, попробуйте создать токен формата %.0f и аргумент roundf(timeLeft).

...