問題タブ [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.
iphone - iPhone:特定の時間にサウンドを再生する方法は?
私は次のコードを書きました:
iPhoneを振動させるのではなく、オーディオファイルを再生したい。それは可能ですか?
objective-c - NSTimerの無効化と再作成に関する問題
NSTimersの起動と停止に問題があります。ドキュメントによると、タイマーは[timerunvalidate]によって停止されます。
そのように宣言されたタイマーオブジェクトがあります
-いつもの。
必要な場合、私のメソッドは次のことを行います。
上記のすべてが正常に機能します。ただし、そのタイマーが機能するようになったら、それ自体を無効にします。呼び出すことができる等しいデクリメントメソッドがあり、それがまだアクティブである場合はincrementTimerと戦うため、タイマーを無効にします。(以前、2つのタイマーがアクティブな場合、値を増減することで同じivarに作用していることに気付きました(一種の戦い)...クラッシュすることなく)呼び出されたセレクターは次のように機能します。
バッテリー数を減らす同等の方法があります。(前述)
私のプログラム設計により、インターフェースは電圧表示をシミュレートします。「マシン」がオフになっているときは、電圧値に関係なく、すべてのタイマーを無効にします。私はタイマーが有効かどうかを確認することでこれを行っています。
「BAD_ACCESS」が何度もクラッシュします。誤った回線呼び出しは、常に私の[timerisValid]呼び出しを指しています。タイマーが無効になっていると…ポインタも存在しないようです。[timer invalidate]メッセージがタイマーを無効にし、実行ループから削除されてから解放されることを知っています。そして、私の理解は次のとおりです。それは、命名規則に従って自動リリースされたオブジェクトです。
私の考えは次のとおりです。保持メッセージを送信している場合、参照はまだ存在するべきではありませんか?私はいくつかの組み合わせを試しましたが、次のことを取り上げました。
または代わりに:
私は試した :
と:
私はいつも同じクラッシュを起こします。NSTimersの起動と停止についてご協力いただきありがとうございます。
objective-c - 起動されたコードのsleepコマンドより短いNSTimer間隔
繰り返し実行したいコードのスニペットがありますが、一時停止および再開する機能があります。これを行うために、必要に応じて停止および開始できるNSTimerを利用しました。
スニペット内で、sleepコマンドを使用して何かが更新されるのを待ちます(0.3秒)。タイマーは0.5秒ごとに起動しています。
理想的なのは、停止と開始の機能を維持し、0.3秒ごとに起動することですが、x秒ごとに起動するように明示的に言う必要はありません。0.5は完全に任意であり、>0.3に設定されています。
タイマーを0.01秒ごとに起動するように設定したが、コード内のsleepコマンドを0.3秒に起動したままにすると、目的の動作が得られますか?または、タイマーはすべてのイベントをバックアップし、予期しない結果が発生しますか(たとえば、停止した後の複数回の起動)?このようにして、0.3秒のスリープを変数にすることができ、0.5を超えるたびにタイマーを変更する必要はありません。
または、この機能を取得するためのより良い方法はありますか?
iphone - スレッドでのNSTimerの実行
iPhoneSDK3.0を使用してスレッドでNSTimerを実行しようとしています。私はすべてを正しく行っていると思います(新しいrunloopなど)。このエラーが発生したにもかかわらず、viewDidDissappearで[timer invalidate]を呼び出すと、次のようになります。
bool _WebTryThreadLock(bool)、0x3986d60:メインスレッドまたはWebスレッド以外のスレッドからWebロックを取得しようとしました。これは、セカンダリスレッドからUIKitを呼び出した結果である可能性があります。現在クラッシュしています...プログラムは信号「EXC_BAD_ACCESS」を受信しました。
これが私のコードです:
タイマーを無効にする行を削除すると、すべてが正常に機能します。私はそれを無効にすることになっていないのですか、それとも他の間違いを犯していますか?
ありがとう
objective-c - メニューバーアプリを備えたNSTimer
私は単純なタイマーアプリに取り組んでおり、メニュー付きの NSStatusItem を作成しました。タイマーラベルを更新する NSTextField ラベルがいくつかあります ( http://cld.ly/e81dqm )が、ステータス項目をクリックするとNSTimer が停止します (そして、ラベルの更新が停止します).....どうすればこの問題を回避できますか?
編集:タイマーを開始するコードは次のとおりです。
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerDidUpdate:) userInfo:nil repeats:YES];
time - ラベルの NSTimer
iphone sdk を使用していて、ユーザーがボタンをクリックしたときにラベルを表示する必要がありましたが、しばらくするとラベルが消えてしまいました。
iphone - NSTimerを含むNSThreadを無期限に保持しますか?(iPhone)
アプリに3分ごとに更新する必要のあるWebサービスデータがあります。私はいくつかのアプローチを試しましたが、先週ここで非常に良いアドバイスを得ました。3分ごとに新しいスレッドを構築してから、メモリのバグを回避するために、すべての異なる部分の割り当てを解除して同期する必要があります。代わりに、常に実行されている「ワーカースレッド」が必要ですが、実際の作業は、私が要求したとき(3分ごと)にのみ実行されました。
私の小さなPOCが機能するようになったので、applicationDidFinishLaunching
メソッドに新しいスレッドを生成します。私はそうするようにこれをします:
わかりました。これにより、「BackgroundUpdate」オブジェクトが秒単位の更新間隔で初期化されます。アップデータの内部は、今のところ次のようになっています。
私はこれまでこのようなスレッドを使用したことがありません。私はいつも「autoReleasePoolをセットアップし、作業を行い、autoReleasePoolを使い果たして、さようなら」をしてきました。
私の問題は、initWithTimerInterval
が実行されるとすぐにNSThread
、それがupdateModelメソッドに戻り、プールが空になることです。NSTimerが独自のスレッド/実行ループを持っていることに関係していると思いますか?testIfUpdateNeeded
スレッドで3分ごとにメソッドを実行し続けたいと思います。
では、このNSThreadをアプリの全期間にわたって存続させるにはどうすればよいでしょうか。
与えられた助け/アドバイスをありがとう:)
objective-c - タイマー無効化
与えられたこの声明の意味は何ですか?
iphone - iPhone アプリの分析に ObjectAlloc または Leaks を信頼できますか?
「Leaks」(Object Alloc のセクションがある) を使用して iPhone アプリを実行すると、アプリはメモリ割り当てに問題ないように見えます。ただし、ObjectAlloc ツールだけで実行すると、アプリがメイン タイマーを実行するにつれて、メモリが着実に増加します。(タイマーベースのアプリです)。何を信用したらいいのかわからない。ObjectAlloc ツールに関連する問題があるかどうか疑問に思っていました。多分NSTImerに関連する何か?これをデバイスで実行しています(シミュレーターではありません)。ありがとう。
iphone - iPhone SDK のオーディオのフェードインとフェードアウト
CocoaTouch で AVAudioPlayer を使用してオーディオをフェードインおよびフェードアウトする方法があるかどうか疑問に思っています。音楽のフェードが終了したら一時停止コマンドを使用し、フェードが開始したら再生コマンドを使用します。この目的で NSTimer を使用できると聞いたことがありますが、これを実現する最も簡単な方法がわかりません。
助けてくれてありがとう!