Правильно ли я использую NSTimer в приложении для iPhone View? - PullRequest
0 голосов
/ 27 мая 2009

Я работаю над простым испытанием концепции для приложения для iPhone (и важная информация, я довольно новичок в разработке Mac OSX со всех сторон). Я создал приложение на основе вида с таймером. Я объявил свой NSTimer в интерфейсе контроллера моего приложения, использовал @property и @synthesize и инициализировал его в методе контроллера viewDidLoad с помощью метода scheduleTimerWithTimeInterval. Мой селектор - это метод с подписью -(void)someMethod:(NSTimer *)timer, который объявлен в интерфейсе и также определен в файле реализации контроллера. Я могу пройти мимо строки, где я назначаю таймер, и вижу, что он указывает на действительный объект, но моя программа идет не дальше конца метода viewDidLoad и никогда не достигает точки останова в первой строке моего метода, который вызывается таймер Кроме того, я вижу GDB: Program received bad signal: "EXC_BAD_ACCESS" в строке состояния xcode в этой точке (достигнут конец viewDidLoad). Я ничего не делал в IB, но добавил вид и средство выбора только для того, чтобы увидеть, действительно ли загружается пользовательский интерфейс ... он никогда не делает.

Итак, я что-то не так делаю с NSTimer, или мои проблемы в другом месте? Как я могу использовать инструменты отладки в xcode, чтобы получить больше информации?

Ответы [ 2 ]

3 голосов
/ 27 мая 2009

EXC_BAD_ACCESS обычно указывает на ошибку управления памятью, не видя код, вероятно, откуда-то еще в вашем приложении. Это очень распространенная ошибка для новичков, но важная тема для полного понимания, поэтому я бы посоветовал просмотреть некоторые вопросы по управлению памятью здесь и найти несколько руководств или руководств для просмотра. Это на самом деле довольно легко учиться.

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

2 голосов
/ 27 мая 2009

У вас есть NSZombieEnabled?

Может быть полезно, если происходит сбой на слишком освобожденном объекте.

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