1

Mac OS 10.8 では、アプリで次の警告が表示されます。

CoreAnimation: warning, deleted thread with uncommitted CATransaction;

環境で CA_DEBUG_TRANSACTIONS=1 をオンにして、バックトレースをログに記録することをお勧めします。

これは私のバックトレースのトップです:

0 QuartzCore 0x00007fff88a84b95 _ZN2CA11Transaction4pushEv + 219
1 QuartzCore 0x00007fff88a8476d _ZN2CA11Transaction15ensure_implicitEv + 273
2 QuartzCore 0x00007fff88a8bb6a _ZN2CA5Layer12begin_changeEPNS_11TransactionEjRP11objc_object + 44
3 QuartzCore 0x00007fff88a8cb4e _ZN2CA5Layer10set_boundsERKNS_4RectEb + 452
4 QuartzCore 0x00007fff88a8c908 -[CALayer setBounds:] + 189

この警告が何であるか、またそれを回避する方法を知っている人はいますか?

4

1 に答える 1

7

問題のあるコードCATransactionをアクションを無効にして明示的にラップすると、警告が消えることがわかりました。

すなわち

[CATransaction begin];
[CATransaction setDisableActions:YES];
layer.bounds = CGRectMake(0, 0, 1000, 1000);
[CATransaction commit];
于 2012-08-09T12:13:17.823 に答える