Какие наиболее распространенные / необычные сообщения об ошибках встречаются в Objective-C и что их вызывает?
Я пытался сохранить список всех сообщений об ошибках, с которыми я когда-либо сталкивался при разработке, и их общих причин и исправлений. С какими распространенными (и не очень) сообщениями об ошибках вы сталкивались и как вы их исправляли?
2 ответа
EXC_BAD_ACCESS
при ссылке на указатель, который указывает на объект, который был dealloc
"изд
В целом я нахожу, что сообщения об исключениях и ошибках объекта C не требуют пояснений. Я думаю, что вам будет лучше, если вы научитесь использовать отладчик с точками останова на исключениях target-c для определения местоположения конкретной строки, вызывающей сбой, чем пытаться скомпилировать список получателей для устранения распространенных ошибок.
Тем не менее, единственной неочевидной ошибкой, которую я вижу в качестве частой путаницы, является "нераспознанный селектор foo: отправлено в BarClass". Хотя причина такой ошибки должна быть ясной, ответить на вопрос, как это произошло, может быть сложнее, и я вижу две общие причины:
- Приложение пытается вызвать метод подкласса для экземпляра суперкласса. Зачастую в результате разработчикам не удается изменить класс объектов в IB.
- Объект был освобожден или на него были сделаны другие ссылки после освобождения. Если новый экземпляр какого-то другого класса теперь занимает эту память, обращайтесь к приложению с помощью исключения "нераспознанный селектор", а не "BAD_ACCESS".