問題タブ [nstimer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - NSTimerがすでに無効になっているかどうかを確認する方法
NSTimer
ユーザーがボタンをタップした場合、またはビューを終了した場合に無効にする必要があるオブジェクトがあります。
ので、私は持っています:
ボタンハンドラーの内部と内部viewWillDisappear
。ユーザーがボタンをタップしてからビューが存在する場合、myNSTimer
すでに無効になっているため、アプリは例外をスローします。viewWillDisappear
メソッドで行う必要があるのは、myNSTimer
が無効になっているかどうかを確認することです。それ、どうやったら出来るの?
私はもう試した:
しかし、それはうまくいきませんでした。
iphone - NSTimer と Touches イベントの競合
特定のイベントの発生時に2つのアクションを実行しようとしています.1つは、固定間隔のタイマーが起動されたときに発生するアニメーションであり、もう1つはタッチが検出されたときに発生するアニメーションです
両方とも個別には正常に動作しますが、アニメーションのいずれかが同時に発生すると速度が低下します。これは、指定された時間単位で 1 つのアクションしか実行していないためです。
0.01秒の時間間隔を使用するNSTimer imの場合
アニメーションの速度を落とさずにこのシナリオを機能させるにはどうすればよいですか?
cocoa - 無効にする必要がない場合、スケジュールされた NSTimer を保持する理由はありますか?
私はそれを整理するためにいくつかの厄介なコードに戻ります.NSTimersから返されたものscheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
を保持し、それらをフィールドに格納してから、フィールドが起動したときにフィールドを解放してnullにしていることがわかります. 場合によっては、タイマーを使用して後で無効化メッセージを送信しますが、多くの場合は送信しません。
最近のコードでは、通常、タイマーをスケジュールするだけで忘れてしまいます。コンストラクターメソッドが自動解放され、タイマーがアクティブな間、実行ループによって保持されることを理解しています。したがって、これには問題はありません。
それで、私の理解を締めくくるために-タイマーを保持しなければならない他の理由はありますか、それとも私が今していることは受け入れられたイディオムですか?
これはすべて iPhone コードのコンテキストにありますが、これが iPhone 固有のものであるとは思いません。
ios - UIScrollViewは、スクロールが終了するまでNSTimerを一時停止します
UIScrollView
(またはその派生クラス)がスクロールしている間、実行中のすべてがスクロールが終了するまで一時停止しているように見えますNSTimers
。
これを回避する方法はありますか?スレッド?優先順位の設定?なんでも?
iphone - NSTimer の数が多すぎますか?
iPhone OS デバイスで、同時に実行される NSTimer の数は多すぎますか? 1 秒間に 25 回起動する 1 つのタイマーによって呼び出されるルーチンがたくさんありますが、物事はかなり途切れ途切れで、遅く、重いものです。作業負荷を少し分散するために 1 つ以上の NSTimer を追加することを考えていますが、いくつ使用しても問題ないか心配です。これは、私が認識している個々のタイマーの発火率に多少依存する可能性があるため、1 秒あたり 20 ~ 30 回の発火率を想定してみましょう。では、いくつの NSTimers が多すぎますか?
iphone - iPhone アプリケーションが非アクティブなときの NSTimer コールバック
この質問は、このフォーラムの他のいくつかの本質のようです。アクティブな iPhone アプリケーションが非アクティブ状態になった後も (画面ロックでアイドル タイマーがキックするか、ユーザーがハードウェア ロック ボタン)。
ドキュメントには、アプリケーションが非アクティブである間は実行されているが、着信イベントはディスパッチされていないことが明確に記載されています (NDA について心配しているので、リンクを提供していません。それについてリラックスする必要がありますか? この投稿全体が違反ですか?ため息をつきます) )。
また、ユーザー「Ambr Str」による2つの回答は、タイマーコールバックを引き続き受信できることを直接述べており、それを実現するためのコードの断片を提供しています(私は新しいユーザーであるため、これにリンクできません.申し訳ありませんが、「iPhone がスタンバイ モードになると、iPhone アプリはどうなりますか?」という質問を検索して、答えを見つけてください)。
彼が提案するようにコールバックを作成しようとしましたが、アプリケーションが非アクティブになると、コールバックは起動しなくなります。
iPhone が接続されている間、アプリケーションが非アクティブになった場合 (アイドル タイムアウトまたはスリープ ボタンを押したために)、コールバックが引き続き発生することに気付きました - おそらくユーザーにバッテリーを携帯してもらう必要があります。それらと一緒に詰めてください;-)
iphone - NSRunLoop の実装
わかりました、ゲーム ループを実行して適切なフレーム レートを維持するために、NSTimer 呼び出しの代わりに NSRunLoop を使用する方が良い考えである理由についての記事を読みました。
しかし、NSRunLoop を作成する場所については、どのディスカッションでも見ていませんでした。
didFinishLoading の最後に配置する必要がありますか?