日々精進

新しく学んだことを書き留めていきます

NSViewのアニメーションを実行すると「CoreAnimation: warning, deleted thread with uncommitted CATransaction」

self.alphaValue = 1;を実行すると、Viewが全然表示されず、10秒後に「CoreAnimation: warning, deleted thread with uncommitted CATransaction」というエラーメッセージが表示されるという現象が起きた。
原因はself.alphaValue = 1;をbackground threadから実行していたので、CoreAnimationをbackground threadで実行してしまっていたこと。
performSelectorOnMainThreadを使ってメインスレッドで処理すると直った。
アニメーションだけでなく、layerの操作は全部だめっぽい。layer setBackgroundColorとかも。
参考:objective c - iOS 6 : CoreAnimation: warning, deleted thread with uncommitted CATransaction - Stack Overflow