問題タブ [nsnotification]

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 投票する
1 に答える
731 参照

iphone - NSNotification でセレクターをトリガーするにはどうすればよいですか?

コードは次のとおりです。

セレクター メソッドが呼び出されることはありません。ムービープレーヤーで「完了」ボタンが押されたときに、ルートメニューに戻りたいだけです。セレクターに NSLog を入れて、それが呼び出されているかどうかを確認しましたが、何もありませんでした。音楽はうまく再生されます。何かご意見は?

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

iphone - Tableviewリロードデータの問題iphone sdk

uitableviewcontroller のサブクラスであるクラス A と、実際にテーブルビューを表示するもう 1 つのクラス B があり、その内容は A のサブクラスです。

私のxmlを解析し、コンテンツをアプリケーションデリゲートのnsmutablearrayに保存するxmlパーサーがあります。ここで、このデリゲート配列をクラス B のローカル nsmutablearray にフェッチして、デリゲートとクラス B の 2 つのクラス間の通信を最小限に抑え、それを表示します。

クラス A で特定の条件が満たされた後、xml パーサーを呼び出してデリゲート配列を補充し、クラス B の tableview reload メソッドを呼び出しています。問題は、テーブルビューのリロード データを呼び出すと、クラス B のデリゲート メソッドが呼び出されることです。しかしその前に、クラス B のローカル配列でこのデリゲート配列を取得する必要があります。どうすればよいでしょうか?

誰でも助けてもらえますか?

事前にサンクス。

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

iphone - addobserver / removeobserver クエリ

最初に使用してから同じ名前で-removeObserver:呼び出しても問題ありませんか? -addObserver:それとも-addObserver:先に先にするのがルール-removeObserver:ですか?

OS 4.0 を使用して試してみましたが、問題ないようです (クラッシュ、警告などはありません)。

その理由は、メソッドが内部でメモリ警告が発行された場合にメソッドが再度呼び出されたとselectorName仮定して、同じメソッドを持つ 2 つのオブザーバーが 2 回呼び出されるのを防ぐためです。-setObserver-viewDidLoad

-removeObserver:また、中に呼び出す必要があり-deallocますか?

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

objective-c - NSNotificationCenter セレクターが呼び出されていない

iPad アプリの 1 つのクラスで、通知を登録します。

私のselectedList:方法は次のようになります。

次に、別のクラス (a UITableViewController) で、行が選択されたときにその通知を投稿します。

「投稿通知」はコンソールに記録されますが、「受信通知」は呼び出されないため、通知が投稿されていることを確認できます。つまり、通知が受信されておらず、セレクターが呼び出されていないことを意味します。何が原因なのかわかりません。

ありがとう

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

objective-c - 通知しながらリリース

私はオブジェクトを持っています

通知を通過させたいです。問題は、それを正しくリリースする方法がわからず、メモリ管理のドキュメントが私を夢中にさせていることです。

私は今このようにやっています:

むしろそうすべきです:

(iPhone、iOS4.0用です)

前もって感謝します!

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

cocoa - 同じオブジェクト内でのみ送信される NSNotifications

こんにちは、通知センターを介してメッセージを送信する NSObject サブクラスがあり、オブジェクト nil に通知を送信していますが、通知を受信できる唯一のオブジェクトはそれらを送信するオブジェクトです

同時に 2 つの通知が送信されています (スレッドの問題かどうかをテストするため)。

そして私のオブザーバーは同じくらい単純です

通知を受信しない別のオブジェクトの同じオブザーバーです

0 投票する
0 に答える
872 参照

iphone - MPMoviePlayer が前方にシークしなくなり、代わりに警告が表示される

そのため、MPMoviePlayer は、MoviePlayer によって内部的にシークが行われているにもかかわらず、前方にシークする必要がないように見えるため、シークが発生していることを知るために通知を設定するだけです。

したがって、通知を次のように設定します。

次に、playbackStateDidChange: 内に次の関連コードがあります。

最後に、前方シーク ボタンを押したままにすると、playbackStateDidChange が実際に呼び出され、実際に「再生状態が前方にシークしています」と表示されますが、ムービーの動作に識別可能な変化は見られません。ただし、2 回目に順方向にシークしようとすると、コンソールに次の警告が表示されます。

警告: _inflightSeekRate は既に設定されています。これは、_rateDidChangeNotification が受信される前に複数の setRate:error: 呼び出しが行われたことを意味します

つまり、基本的に、フォワード シークが適切に機能していません。これは MPMoviePlayer のバグであるという予感がありますが、オンラインで自分の主張を裏付けるものや質問に答えるものを見つけることができませんでした。この問題を処理する方法 (おそらく回避策) について何か良いアイデアがあれば、私はすべて耳にします。

ありがとう;

-スティーブ

PS - 先週 X-Code/iPhone SDK をアップグレードするまで、私の MPMoviePlayer シークは問題なく機能していたことに言及する必要があります。フォワードシークを除いて、今は問題ないようです。

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

ios - NSNotification を使用した removeObserver ... 何が間違っていますか?

基本的に、ある時点でview2を呼び出すview1があります(経由presentModalViewController:animated:)。view2の特定UIButtonのものが押されると、view2 は view1 の通知メソッドを呼び出し、直後に閉じられます。通知メソッドはアラートをポップアップ表示します。

通知メソッドは正常に機能し、適切に呼び出されます。問題は、view1 が作成されるたびに (一度に 1 つの view1 だけが存在する必要があります)、おそらく別のNSNotificationビューが作成されることです。 view1 を開いた回数だけ、通知メソッドから一連の同じアラート メッセージが次々と表示されます。

これが私のコードです。私が間違っていることを教えてください:

View1.m

View2.m

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

cocoa - 他のプログラムのクラッシュを検出するための NSNotification

システムがNSWorkspaceDidTerminateApplicationNotificationを送信すると考えながら、別のアプリがクラッシュしたかどうかを検出する小さなデーモンを作成することを計画していましたが、そうではありません。

クラッシュしたアプリケーションを単純に再起動するために launchd プロセスを作成したくない場合、他の方法でクラッシュを検出できますか?

おそらく、システムログを監視できますか? 負担が大きすぎるようです。

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

iphone - iOS - NSNotificationCenter のメモリ リーク

Instruments はこれをメモリ リークとして報告します (98.6%、それが何を意味するにせよ):

「self」はUIImageViewのサブクラスです。通知に「self」が含まれていると、メモリ リークが発生しますか? もしそうなら、どのように解決しますか?