Ответ 1
Чтобы найти источник проблемы, в Xcode перейдите в Product > Scheme > Edit Scheme, а на вкладке Diagnostics включите все настройки Malloc и Guard Malloc.
С этим запустите приложение снова, и Xcode остановится в строке, вызывающей проблему.
У меня есть большая проблема с моим iOS-приложением: он иногда падает, без подробной ошибки отладки. Трассировка стека пуста. Это единственные две строки в трассе стека:
в com.apple.main-thread
.
Ошибка в отладчике Xcode (с подключенным устройством):
malloc: *** error for object 0x208a7614: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Я установил точку останова в malloc_error_break с libsystem_c.dylib без обратной связи от отладчика. Я не знаю, как решить эту проблему.
Чтобы найти источник проблемы, в Xcode перейдите в Product > Scheme > Edit Scheme, а на вкладке Diagnostics включите все настройки Malloc и Guard Malloc.
С этим запустите приложение снова, и Xcode остановится в строке, вызывающей проблему.
Поскольку вы находитесь в отладчике, вы должны посмотреть на ячейку памяти 0x208a7614
и посмотреть, что там. Данные в памяти могут быть полезны при определении того, что происходит не так.
Что происходит одно из следующего:
вы дважды освобождаете объект,
вы освобождаете указатель, который никогда не выделялся
вы пишете недопустимый указатель, который ранее указывал на уже освобожденный объект
Так как трассировка стека становится пустой, может быть полезно добавить некоторые операторы журнала отладки в ваш код в разных местах, чтобы увидеть, можете ли вы сузить место, где в коде проблема. Использование инструментов памяти в Инструментах также может помочь. Вы можете попробовать включить NSZombies, но это выглядит как проблема с распределением C, а не с Objective-C.
Кроме того, что-то еще написано на консоли перед сбоем? Если это так, он может указать вам, откуда эта проблема.
Привет, ребята, я нашел это решение, если вы используете интерфейс nib или xib и сталкиваетесь с этой проблемой, когда хотите нажать объект viewcontroller, то через некоторое время эта ошибка произойдет, и ваше приложение будет аварийно завершать работу (особенно ошибка в iPad). Вот решение:
//Форматировать как это
UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:yourViewControllerObj];
[self.navigationController presentViewController:nav animated:true completion:nil];
Не пытайтесь подтолкнуть в этом состоянии.
Если у вас есть эта проблема. перейдите к: product-> схема → diagnosis-> затем включите край моллиного гаурда и объект зомби, затем закройте, затем перейдите product-> остановите, затем снова product- соберите и запустите. удачи