Прежде всего, ЕДИНСТВЕННЫМИ вещами, которые вы должны вызывать в dealloc, является выпуск на ваших ivars, отмена регистрации для уведомлений NSNotificationCenter (если он зарегистрирован в init) или установка делегатов UIWebViews и UIScrollView на ноль (как предлагается в документации Apple). Если ваш UIViewController является делегатом / источником данных вашего табличного представления, нет необходимости устанавливать их в nil в dealloc (или где-либо еще), так как когда контроллер представления уничтожается, вы гарантированно не будете отправлять мошеннические сообщения, и Вы в равной степени гарантированы, что делегат / источник данных табличного представления не будет уничтожен раньше, чем табличное представление.
Весьма маловероятно, что дефект - это яблоки. На какую ОС вы ориентируетесь? Если вы используете ARC, у вас действительно должно быть несколько случаев, когда вам нужно дурачиться в dealloc. Если вы символизируете свой журнал сбоев, вы получите номера строк и классы из вашего приложения, которое вызывает сбой. Символизировать в Xcode 4 действительно просто, вы можете найти информацию об этом здесь: Символизирующие отчеты о сбоях в приложениях iPhone
Что значит, что вы всегда вставляете табличное представление как IBOutlet? Если это IBOutlet, это означает, что у вас есть табличное представление в nib-файле, и в этом случае табличное представление создается для вас, когда nib-файл выгружается. Если вы пытаетесь удалить табличное представление и повторно добавить его в представление с целью обновления его информации, это неправильный подход: простой вызов reloadData сделает это за вас, и снова выполните все методы делегата. , Является ли делегат и источник данных объектом ДРУГОЕ, чем контроллер представления, управляющий вашей таблицей?