Сначала позвольте мне сказать, что я пришел из Flash / AS3, который, как я понимаю, не так строг в отношении большинства вещей, как iPhone / Objective-C.
Я подозреваю, что мой вопрос действительно относится и к AS3, но позвольте мне задать его как имеющий отношение к Obj-c. Почему ошибка EXC_BAD_ACCESS и другие подобные ей так бесполезны? Я понимаю, что это обычно означает неправильное управление памятью где-то, но почему это не может рассказать вам больше о проблеме. Например, почему он не говорит «EXC_BAD_ACCESS, вы пытались передать указатель suchAndSuch на строку 123, однако вы идиот, потому что вы выпустили его на строке 69, чтобы он больше не был доступен»?
Я понимаю, что могу использовать отладчик, чтобы получить больше подсказок о том, где произошла моя ошибка, но часто это лишь незначительно помогает. Например, иногда ни одно из сообщений в стеке / потоке / что бы то ни было, даже мой код. В других случаях это мой код, но на вершине стека будет сообщение с 4+ параметрами, хорошо, отладчик, вы сузили его до 4 возможных указателей, почему вы не можете просто сказать, какой из них!?
Я предполагаю, что есть только фундаментальное объяснение, которое я пропустил из-за фона, из которого я пришел, не нужно беспокоиться о памяти и тому подобном. Хотя в разработке AS3 может случиться много ошибок, которые в равной степени таинственны и одинаковы. «Ошибка № 1009: не удается получить доступ к свойству или методу пустой ссылки на объект», что почти всегда означает, что переменная, которую вы ожидали содержать что-то, на самом деле является нулевой. Почему это не говорит мне, какая переменная?!