Обработка исключения в Objective C и выяснение того, что это значит - PullRequest
1 голос
/ 11 ноября 2009

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

Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «*** - [_ Длина NSXMLParserInfo]: нераспознанный селектор, отправленный экземпляру 0x3534a60»

Я не уверен, что там означает "нераспознанный селектор"? Я мог бы обработать исключение и забыть об этом, но мне интересно, есть ли здесь что-то более глубокое?

Любая помощь приветствуется //:)

Ответы [ 3 ]

2 голосов
/ 11 ноября 2009

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

2 голосов
/ 11 ноября 2009

Это означает, что NSXMLParserInfo не имеет функции с именем length. Селектор - это другое слово для метода / функции в Objective-C.

Я не уверен, какое быстрое нажатие связано с этим, хотя. Возможно, обработчик событий занимает немного времени, но быстрое нажатие заставляет его снова срабатывать, пока он еще работает?

1 голос
/ 11 ноября 2009

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

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