Точка останова Xcode [NSExceptionRaise] против - [NSExceptionRaise]

Xcode: Выполнить> Показать> Точки останова

Я добавил обязательные [NSExceptionRaise] и objc_exception_throw, но когда я закрываю окно «Точки останова» и затем возвращаюсь, Xcode добавляет третью точку останова: -[NSExceptionRaise]. Означает ли это, что [NSExceptionRaise] ошибочен и я должен его удалить? Или они оба полезны? Если да, то чем они отличаются функционально?

альтернативный текст


person Meltemi    schedule 25.11.2009    source источник


Ответы (3)


Правильная точка останова:

-[NSException raise]

Вы инструктируете отладчик прервать выполнение метода -raise класса NSException. «[NSExceptionRaise]» - ерунда (что означает отсутствие неуважения). :-)

Насколько я знаю, вам не нужны оба. objc_exception_throw - это «новый» способ, тогда как - [NSException raise] - «старый» способ. Я верю, что если вы используете Leopard или новее, будет вызываться только objc_exception_throw. 10.4 или ранее будет коллировать - [повышение NSException].

person Joshua Nozzi    schedule 25.11.2009
comment
может ли кто-нибудь проверить, что 10.5+ только вызывает objc_exception_throw? если да, то я могу полностью забыть об этой чепухе [поднятия исключения NSE]. - person Meltemi; 25.11.2009
comment
Начиная с 10.5, - [NSException raise] вызывает objc_exception_throw. Вот почему вам не нужны оба. - person Ken; 25.11.2009

Вновь добавленная точка останова относится к -[NSException raise], который отличается от [NSExceptionRaise] тем, что последний является методом объекта (NSException - класс, raise - сообщение). Я не знаю, что это за последнее, и подозреваю, что XCode пытается понять, что вы ввели, и что, по его мнению, вы имели в виду.

person fbrereto    schedule 25.11.2009

Вы должны предварять метод знаком плюса или минуса, потому что отладчик использует заголовки для поиска и определения символа. Разные методы могут иметь одно и то же имя, но методы, перед которыми стоит знак «+», являются методами класса, а методы, перед которыми стоит знак «-», являются методами экземпляра. Без плюса или минуса отладчик не знает, какой метод вам нужен.

person TechZen    schedule 25.11.2009