2012-08-09 82 views
1

在Mac OS 10.8我得到我的應用程序如下警告:CoreAnimation未提交CATransaction警告

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 

有誰知道這個警告什麼,以及如何避免呢?

+0

你在做你的應用中的一些動畫?如果是這樣,給我們看一些代碼。 – 2012-08-09 11:58:31

+0

是的,但與此無關。在這裏,我正在鋪設CALayers並將它們渲染爲位於NSOperationQueue中單獨線程中的位圖。 – Nik 2012-08-09 12:01:47

回答

7

我發現,將違規代碼封裝爲明確的CATransaction且禁用了操作,警告消失。

[CATransaction begin]; 
[CATransaction setDisableActions:YES]; 
layer.bounds = CGRectMake(0, 0, 1000, 1000); 
[CATransaction commit];