2013-08-21 8 views
5

iPadアプリケーションでクラッシュの報告を受け取りました。ログメッセージが添付されています。ログメッセージの最後の2行は、次のとおりです。誰かが 'CoreAnimation:タイムアウトフェンス'ログメッセージを説明できますか?

Aug 21 08:58:51 2TesterPad backboardd[26] <Warning>: CoreAnimation: timed out fence 25993 
Aug 21 08:58:51 2TesterPad backboardd[26] <Warning>: CoreAnimation: updates deferred for too long 
Aug 21 08:58:52 2TesterPad AppName[2428] <Warning>: CoreAnimation: failed to receive fence reply: 10004003 

これらのログメッセージが意味することは誰でも教えてください。私はこのオンラインに関する良い情報を見つけることができませんでした。

答えて

10

通常、コアアニメーション操作はキューに登録されていますが、長時間保留され、タイムアウトしていることを意味します。

チェックするためにいくつかのこと:

  • はあなたがどんな-viewDidAppear上のスーパーメソッドを呼び出すと-viewWillAppear
  • されていることを確認し、ビューがあなたが-viewDidAppear
  • チェックを介して提示される前にアニメーションを実行されていないことを確認メインスレッド上のUIとのみ対話します。私は関連するコードがバックグラウンドスレッド上で実行されたときにUIAlertViewを表示するときに待ちフェンスメッセージに関する問題を見た。
  • UIScollViewには多くのサブビューがあり、UIScrollViewをアニメーション化するとこの問題が発生する可能性があります。これは、ブロック内にコードを入れてメインスレッドに送信することで確認できます。この場合、サブビューが画面に表示されていなくても、すべてのサブビューがアニメーション表示されます。この回答を参照してください:https://stackoverflow.com/a/10938889/257550。これを解決する1つの解決策は、可視セル内のサブビューのみがアニメ化されることを保証するUITableViewを使用するようにビューを再設計することである。

    dispatch_async(dispatch_get_main_queue(), ^{ 
    
        UIAlertView *alert = 
         [[UIAlertView alloc] initWithTitle:@"title", 
                mssage:@"message" 
               delegate:nil 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
    
        [alert show]; 
    }); 
    
2

まず私は答えのためにマイケルG.Emmonsに感謝したいと思います。それが正しい方向に私を置く。

問題は、(listViewView)viewWillApearでサービスを呼び出していて、(detailsView)詳細を保存していた(サービスが呼び出されました)、dismissAlertがアニメーションを持っていたため、アニメーションが呼び出されました。ある日のために積み重ねられ、この警告を投げた。このデバイスは、Xcodeコンソールにログメッセージを表示せずにハングアップするため、デバッグは困難でした。

iOS(7)でうまくいっていて、iPhone 6 Simulator以上のiOS 8に問題がありました。

私は、同様の問題を持っていた私のコンソールログは次の通りであった: :CoreAnimation:CoreAnimation::フェンスE025 をタイムアウトになったフェンス応答の受信に失敗しました:10004003

ソリューション:私はコード(サービスコール)を移動し、適切にしますviewWillAppearからviewDidAppearに移動し、不必要な(アニメーション)を削除します。

それは私の問題を解決しました。それがいくつか役に立ったらいいな

関連する問題