Подтвердить что ты не робот

Xcode - авария моего приложения и ошибка: "Недопустимый указатель, удаленный из бесплатного списка ***, установите точку останова в malloc_error_break для отладки"

Мое приложение отлично работает на симуляторе. Но когда я запускаю его на устройстве, приложение вылетает и отображает ошибку:

"malloc: * ошибка для объекта 0x17415d0c0: Неверный указатель удален из бесплатного списка * установить точку останова в malloc_error_break для отладки";

Я искал и установил точку останова в malloc_error_break для отладки, но все еще не могу найти проблему. Я попытался изменить схему проекта, включил объект Zombie, но не могу найти ответ.

Я также пытаюсь использовать инструмент, но я не очень хорош в этом.

4b9b3361

Ответ 1

Я исправил эту ошибку с помощью Xcode 8 на iOS 8.3. Я только что изменил цель развертывания с 8.3 до 8.0. Если ошибка появляется после перехода на Xcode 8, и ваше устройство работает под управлением iOS 8, это может быть временное решение.

UPD: Xcode 8.1 beta исправлена ​​эта ошибка.

Ответ 2

Просто исправлена ​​эта же проблема с Xcode 8. Подготовка сборки, совместимой с iOS10, обновленная до рекомендованной Swift Migration 2.3, отлично работает на iOS9 и iOS10, но сбой на iOS8.4. Я вернул изменения в коде и Main.storyboard и создал тот же контент на iOS8, где Xcode 7.3 исправил мои проблемы.

Ответ 3

Я тоже встретил эту странную ошибку, я google, и люди сказали, что это ошибка Swift, не исправлена. Я отлаживаю строку за строкой, узнаю решение.

Причина появления этой ошибки

В EditRecordVC У меня есть функция общего типа func update<RO>(operation: RO) where RO : RealmOperation, RO.R == EditRecordVC.R

В своем подклассе ConflictedRecordEditVC я переопределяю функцию, я ввожу update, и Xcode помогает мне закончить целую функцию override func update<RO>(record: Record?, operation: RO?) where RO : RealmOperation, RO.R == Record, хорошо компилировать.

Запустите код после выполнения переопределенной функции, эта ошибка появится, Xcode остановится в какой-то случайной строке, никто не узнает, что это вызвано этой функцией.

Я отлаживаю строку за строкой, узнаю, что мне нужно изменить общий тип на override func update<RO>(operation: RO) where RO : RealmOperation, RO.R == Record, все будет хорошо работать снова.

Я забыл, когда я добавил ? по ошибке, а Xcode не сердится.

Итак, проверьте функцию generic type и убедитесь, что она одинакова с суперклассом