Нелегко отслеживать сбой в приложении iPad. Трудность на самом деле связана с тем фактом, что при сбое приложения нет ошибок или трассировки стека. Он просто уходит, как Кейзер Соз, "И вот так, пуф, он ушел".
Я реплицировал крах как на симуляторе, так и на устройстве. Есть нулевые журналы устройств, ничего в консоли и т.д.
Я знаю, что во время сбоя в фоновом потоке происходят некоторые операции CoreGraphics
. Как правило, три или около того NSOperations пинают некоторые смеси изображений.
Смешивание состоит из вызовов CGContext * (DrawImage, SetBlendMode, SetAlpha и т.д.). NSOperation обращается к делегату в основном потоке для обработки изображения и устанавливает его в UIImage
, поэтому он не должен быть конфликтом основного потока пользовательского интерфейса, но в данный момент я ничего не обесцениваю.
Есть ли какие-то трюки Xcode, которые мне не хватает, чтобы точно отслеживать, что происходит? Или, по крайней мере, лучше понять, где проблема?
РЕДАКТИРОВАТЬ Я запустил приложение в приложении отслеживания памяти инструментов и увидел, что он довольно устойчив к камню около 2 МБ. Поэтому не думайте, что это проблема памяти. Но после рассмотрения эта скальная устойчивая 2 МБ кажется аномально низкой. Есть ли шанс, что инструменты не собирают распределения CoreGraphics?