問題タブ [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.

0 投票する
4 に答える
17957 参照

ios - NSTimerがすでに無効になっているかどうかを確認する方法

NSTimerユーザーがボタンをタップした場合、またはビューを終了した場合に無効にする必要があるオブジェクトがあります。

ので、私は持っています:

ボタンハンドラーの内部と内部viewWillDisappear。ユーザーがボタンをタップしてからビューが存在する場合、myNSTimerすでに無効になっているため、アプリは例外をスローします。viewWillDisappearメソッドで行う必要があるのは、myNSTimerが無効になっているかどうかを確認することです。それ、どうやったら出来るの?

私はもう試した:

しかし、それはうまくいきませんでした。

0 投票する
3 に答える
1002 参照

iphone - NSTimer と Touches イベントの競合

特定のイベントの発生時に2つのアクションを実行しようとしています.1つは、固定間隔のタイマーが起動されたときに発生するアニメーションであり、もう1つはタッチが検出されたときに発生するアニメーションです

両方とも個別には正常に動作しますが、アニメーションのいずれかが同時に発生すると速度が低下します。これは、指定された時間単位で 1 つのアクションしか実行していないためです。

0.01秒の時間間隔を使用するNSTimer imの場合

アニメーションの速度を落とさずにこのシナリオを機能させるにはどうすればよいですか?

0 投票する
2 に答える
1147 参照

cocoa - 無効にする必要がない場合、スケジュールされた NSTimer を保持する理由はありますか?

私はそれを整理するためにいくつかの厄介なコードに戻ります.NSTimersから返されたものscheduledTimerWithTimeInterval:target:selector:userInfo:repeats:を保持し、それらをフィールドに格納してから、フィールドが起動したときにフィールドを解放してnullにしていることがわかります. 場合によっては、タイマーを使用して後で無効化メッセージを送信しますが、多くの場合は送信しません。

最近のコードでは、通常、タイマーをスケジュールするだけで忘れてしまいます。コンストラクターメソッドが自動解放され、タイマーがアクティブな間、実行ループによって保持されることを理解しています。したがって、これには問題はありません。

それで、私の理解を締めくくるために-タイマーを保持しなければならない他の理由はありますか、それとも私が今していることは受け入れられたイディオムですか?

これはすべて iPhone コードのコンテキストにありますが、これが iPhone 固有のものであるとは思いません。

0 投票する
8 に答える
18648 参照

ios - UIScrollViewは、スクロールが終了するまでNSTimerを一時停止します

UIScrollView(またはその派生クラス)がスクロールしている間、実行中のすべてがスクロールが終了するまで一時停止しているように見えますNSTimers

これを回避する方法はありますか?スレッド?優先順位の設定?なんでも?

0 投票する
3 に答える
1277 参照

iphone - NSTimer の数が多すぎますか?

iPhone OS デバイスで、同時に実行される NSTimer の数は多すぎますか? 1 秒間に 25 回起動する 1 つのタイマーによって呼び出されるルーチンがたくさんありますが、物事はかなり途切れ途切れで、遅く、重いものです。作業負荷を少し分散するために 1 つ以上の NSTimer を追加することを考えていますが、いくつ使用しても問題ないか心配です。これは、私が認識している個々のタイマーの発火率に多少依存する可能性があるため、1 秒あたり 20 ~ 30 回の発火率を想定してみましょう。では、いくつの NSTimers が多すぎますか?

0 投票する
2 に答える
3635 参照

iphone - iPhone アプリケーションが非アクティブなときの NSTimer コールバック

この質問は、このフォーラムの他のいくつかの本質のようです。アクティブな iPhone アプリケーションが非アクティブ状態になった後も (画面ロックでアイドル タイマーがキックするか、ユーザーがハードウェア ロック ボタン)。

ドキュメントには、アプリケーションが非アクティブである間は実行されているが、着信イベントはディスパッチされていないことが明確に記載されています (NDA について心配しているので、リンクを提供していません。それについてリラックスする必要がありますか? この投稿全体が違反ですか?ため息をつきます) )。

また、ユーザー「Ambr Str」による2つの回答は、タイマーコールバックを引き続き受信できることを直接述べており、それを実現するためのコードの断片を提供しています(私は新しいユーザーであるため、これにリンクできません.申し訳ありませんが、「iPhone がスタンバイ モードになると、iPhone アプリはどうなりますか?」という質問を検索して、答えを見つけてください)。

彼が提案するようにコールバックを作成しようとしましたが、アプリケーションが非アクティブになると、コールバックは起動しなくなります。

iPhone が接続されている間、アプリケーションが非アクティブになった場合 (アイドル タイムアウトまたはスリープ ボタンを押したために)、コールバックが引き続き発生することに気付きました - おそらくユーザーにバッテリーを携帯してもらう必要があります。それらと一緒に詰めてください;-)

0 投票する
2 に答える
4248 参照

iphone - NSRunLoop の実装

わかりました、ゲーム ループを実行して適切なフレーム レートを維持するために、NSTimer 呼び出しの代わりに NSRunLoop を使用する方が良い考えである理由についての記事を読みました。

しかし、NSRunLoop を作成する場所については、どのディスカッションでも見ていませんでした。

didFinishLoading の最後に配置する必要がありますか?

0 投票する
3 に答える
1681 参照

ios - iPhone SDK: 次のコードが最初のフレームのみをアニメーション化するのはなぜですか?

私は NSTimer を使用してアニメーション化しようとしており、次のようにコードを設定しました:

これが最初のフレームのみをアニメーション化する理由を知っている人はいますか? この問題はおそらく非常に簡単に修正できますが、私は iPhone 開発の初心者であることに気付くことができません。 - - - - - 編集 - - - - -

さて、NSTimer が正しく動作するようになりました。次のステップは、アニメーションの繰り返しを停止することでした。そのため、次のようにタイマーを無効にしました。

そして今、タイマーが再度呼び出されたときに機能しないので、どうすれば再度検証できますか? (私が思うにそれを再インスタンス化します)

(ところで、私はこれのために別のSO質問を設定しました)

今の私のコード:

} - (void)tick{ [self animatePig]; } - (void)animatePig{

}

0 投票する
6 に答える
2403 参照

iphone - iPhoneで、画面上のコントロールでUIImageViewを移動する最良の方法は何ですか?

このゲームの iPhone 版を開発しています。http://www.students.uni-mainz.de/rathb000/Fillit/Game.html

NSTimer を使用して船の位置を 1 ピクセルずつ変更しています。タイマーの時間間隔は 0.002 です。

しかし、時間間隔をさらに短くすると、船が速く動かないことに気付きました。実際、0.05 と 0.002 の間に違いはありません。NSTimeInterval として与えなければならない最小時間に制限はありますか?

現在、船の動きが遅すぎて、ゲームがエキサイティングではありません。

また、船を動かすためのボタンを押すと、鳥の動き(これもNSTimerによって実現されます)が遅くなります。

これをどのように解決できるかについて何か考えはありますか?

0 投票する
1 に答える
1247 参照

iphone - これはNSTimerの仕事ですか?ループ インターフェイスの変更

インターフェイスのボタンを押したままにすると、インターフェイスの他の部分で一連の変更が実行されます。

たとえば、あるテキストが 1 秒間青色に変わると、UImageView はそのイメージを 2 秒間変更します ...など...

この一連の変更は、ボタンが押されている限り、同じステップをループし続けます。

以前に NSTimer を使用したことがありませんが、これでよいのでしょうか?