Какие наиболее распространенные / необычные сообщения об ошибках встречаются в Objective-C и что их вызывает?

Я пытался сохранить список всех сообщений об ошибках, с которыми я когда-либо сталкивался при разработке, и их общих причин и исправлений. С какими распространенными (и не очень) сообщениями об ошибках вы сталкивались и как вы их исправляли?

2 ответа

Решение

EXC_BAD_ACCESS при ссылке на указатель, который указывает на объект, который был dealloc"изд

В целом я нахожу, что сообщения об исключениях и ошибках объекта C не требуют пояснений. Я думаю, что вам будет лучше, если вы научитесь использовать отладчик с точками останова на исключениях target-c для определения местоположения конкретной строки, вызывающей сбой, чем пытаться скомпилировать список получателей для устранения распространенных ошибок.

Тем не менее, единственной неочевидной ошибкой, которую я вижу в качестве частой путаницы, является "нераспознанный селектор foo: отправлено в BarClass". Хотя причина такой ошибки должна быть ясной, ответить на вопрос, как это произошло, может быть сложнее, и я вижу две общие причины:

  1. Приложение пытается вызвать метод подкласса для экземпляра суперкласса. Зачастую в результате разработчикам не удается изменить класс объектов в IB.
  2. Объект был освобожден или на него были сделаны другие ссылки после освобождения. Если новый экземпляр какого-то другого класса теперь занимает эту память, обращайтесь к приложению с помощью исключения "нераспознанный селектор", а не "BAD_ACCESS".
Другие вопросы по тегам