如果我在从服务加载数据时关闭iPad应用程序,应用程序会关闭,但随后会立即打开,而无需我做任何事情。在这一点上,我什么也做不了;我无法关闭应用程序,也无法与应用程序或设备交互。再次使用设备的唯一方法是重新启动它。应用程序不会崩溃,它只是禁用设备。
发生这种情况时,以下一行在applicationWillResignActive和applicationDidEnterBackground:
之后出现三次+[CATransaction synchronize] called within transaction
如果应用程序崩溃,这几乎是可以接受的,但事实上,设备被渲染成完全无用是一个巨大的问题。如果我能拦截这个bug,或者以某种方式检测到 cattransaction 何时引发这个问题,那就好了。
任何想法?
当主线程上有多个动画时,就会发生这种情况。我也遇到过同样的问题。在我的情况下,应用程序冻结,同时动画callayer和旋转设备。所以我在旋转设备时停止了动画。
查找代码
[CATransaction begin]
//foo
[CATransaction commit]
确保此代码中的动画不会与主线程中的其他动画重叠。
如果您使用UIWindow.rootViewController
完全跳过故事板,则可以在日志中显示。
要删除日志信息,你可以删除故事板,删除信息中将故事板与应用程序关联的键。将LaunchScreen.storyboard
设置为目标中的Main Interface
,并使用
window = UIApplication.shared.keyWindow!
在AppDelegate
内部获得主window
并将您的UIViewController
分配给它。