Я получаю следующую ошибку в xcode.
ошибка для объекта 0x4e18d00: освобожденный указатель не был выделен ** установите точку останова в malloc_error_break для отладки
Я настроил NSZombieEnabled в цели, чтобы я мог просмотреть вызов.Это
- [___ выпуск NSArrayI]
Похоже, я выпустил какой-то массив где-то еще в своем коде, а затем пул автоматического выпуска пытается его освободитьтакже, когда он уже сдан.
Как я могу узнать, где?Любая идея?
К вашему сведению, я создаю все свои массивы, используя метод arrayWithCapacity
или что-то подобное, никогда не используйте методы alloc
или init
.Я не вижу нигде, где я выпускаю те же массивы.(возможно, я слепой !!)
Кроме того, поток управления выглядит следующим образом: Я нажимаю UIButton
, запускаю функцию, прикрепленную к onclick.Это перейдет на различные логические уровни и затем вернет NSArray
.Затем я могу перебрать этот массив в «функции кнопки onClick» и распечатать содержимое.Когда эта «функция кнопки onClick» закрывается, я получаю вышеуказанную ошибку в методе «main».
Еще одно замечание: в одной функции я создаю NSMutableArray, но хочу вернуть NSArray
, поэтому я использую [[mutableArray copy] autorelease]
.Это нормально, верно?
Любой совет был бы очень признателен, так как я часто испытываю большие трудности в попытке отследить причину ошибок.
Заранее спасибо.