-2

私はタイマーベースのアプリケーションを使用しています。メインの実行ループで3つのタイマーを継続的に実行しているため、UIが更新された場合でもタイマーは継続的に実行されます。しかし、しばらくすると(約1時間)、アプリケーションがハングし、ボタンなどが押されたイベントではありません。応答するのに少なくとも10〜15秒かかりました。

MACココアアプリケーションの遅れの原因を知りたいです。私はタイマーベースのアプリに取り組んでいます。だから私は実行するために複数のタイマーが必要です。役に立たないときも無効にします。しかし、それでも私は助けになりませんでした。

コードが問題を引き起こしている場所などを確認できるように、Macのパフォーマンスデバッグについてもガイドしてください。

コード:

NSRunLoop *runloop = [NSRunLoop currentRunLoop]; 
updateServerTimeTimer = [NSTimer timerWithTimeInterval:1.0 
                                                target:self
                                              selector:@selector(updateServerTime)
                                              userInfo:nil 
                                               repeats:YES]; 
[runloop addTimer:updateServerTimeTimer forMode:NSRunLoopCommonModes];
4

1 に答える 1

0

問題はNSRunLoopCommonModes.usescheduledTimerWithTimeInterval:target:selector:userInfo:repeats:メソッドです。NSTimer をスケジュールしNSDefaultRunLoopModeます。UI が更新されている場合、アプリケーションは後で他のイベントを取得します。この投稿を見てください。

于 2012-10-19T07:25:25.630 に答える