2011-08-25 71 views
25

如果我在從服務中加載數據時關閉iPad應用程序,應用程序將關閉,但隨後會立即打開,而無需執行任何操作。在這一點上,我無能爲力;我無法關閉應用程序,我無法與應用程序或設備進行交互。再次使用設備的唯一方法是重新啓動它。該應用程序不會崩潰,它只是禁用該設備。+在事務內調用的[CATransaction同步]

發生這種情況時,下面一行出現在控制檯三次之後applicationWillResignActiveapplicationDidEnterBackground:

+[CATransaction synchronize] called within transaction 

這將會是如果應用程序崩潰幾乎沒關係,但事實是,設備完全無用是一個巨大的問題。如果我可以攔截這個bug或以某種方式檢測到什麼時候CATransaction引發了這個問題,那就沒問題了。

任何想法?

+0

您是否找到針對您的問題的解決方案? – matm

+0

我有同樣的問題,你找到原因了嗎? – nullmicgo

+1

你有沒有找到答案?我似乎無法在網上找到任何東西,我所有的調整和嘗試都失敗了。這[CATransaction同步]仍然阻止我的主線程。 – nferocious76

回答

9

當主線程上發生多個動畫時,會發生這種情況。我面臨同樣的問題。在我的情況下,應用程序凍結,同時動畫CALayer和旋轉設備。所以我在旋轉設備時停止了動畫。

查找代碼

[CATransaction begin] 

//foo 
[CATransaction commit] 

確保此代碼內部的動畫不會與主線程的其他動畫重疊。

+0

是否意味着我必須在所有提交動畫中執行此操作? [CATransaction begin]; [UIView commitAnimations]; [CATransaction commit]; – nullmicgo