+ [Синхронизация CATransaction], вызываемая в транзакции
Если я закрываю приложение для iPad, пока я загружаю данные из служб, приложение закрывается, а затем сразу открывается снова, не делая ничего. На данный момент я ничего не могу сделать; Я не могу закрыть приложение, и я не могу взаимодействовать с приложением или устройством. Единственный способ снова использовать устройство - перезапустить его. Приложение не сбой, оно просто отключает устройство.
Когда это произойдет, следующая строка появится в консоли три раза сразу после applicationWillResignActive и applicationDidEnterBackground:
+[CATransaction synchronize] called within transaction
Было бы почти нормально, если приложение выйдет из строя, но тот факт, что устройство полностью бесполезно, - огромная проблема. Если бы я мог перехватить эту ошибку или каким-то образом обнаружить, когда CATransaction вызывает эту проблему, тогда все будет в порядке.
Любые идеи?
Ответы
Ответ 1
Это происходит, когда в основной теме происходит несколько анимаций. Я столкнулся с такой же проблемой. В моем случае приложение зависает во время анимации CALayer и одновременного вращения устройства. Поэтому я остановил анимацию при вращении устройства.
Ищите код
[CATransaction begin]
//foo
[CATransaction commit]
Убедитесь, что анимация внутри этого кода не перекрывается с другими анимациями в основном потоке.