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