問題タブ [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 に答える
159 参照

ios - NSNotification ログ ステートメントが繰り返される

アプリを作成していますが、致命的なエラーの問題ではなく、少し問題があります。基本的NSNotificationに、ビューが解放された後も私の s は残っているので、ビューを 4 回戻すと、ビューをリロードした回数だけ「これはあなたの通知です」と表示されます。他のすべての方法NSLogは、「これはログ ステートメントです」で問題ありません。releaseNC は使用後に取り外す必要がありますか?

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

objective-c - Objective-c - ブール値を返す addObserver の構文

Xcode プロジェクトに sdk 呼び出しを追加しようとしていますが、ドキュメントには次のように書かれています。

「これらの API を使用している場合、次のイベントのオブザーバーになることができます:
NOTIFICATION_COMPLETED True/False - メールは成功/失敗で完了しました。」

私はここまで到達することができました:

または、それは正しいと思います...ただし、最後の nil についてはわかりません。

とにかく、_NotificationCompleted 関数をフォーマットする方法がわかりません...

これは私が書いたものです:

私は何を間違っていますか?

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

cocoa - 新しいオブジェクトがNSArrayControllerに追加されるまでに通知を受け取ります

アレイコントローラーに新しいオブジェクトが追加されるたびに、メソッド(またはセレクター)を実行したいと思います。

Key-Valueの監視で何とかできると思いますが、その方法は正確にはわかりません。

誰かが私にサンプルコードを教えてもらえますか?

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

ios - NSNotification が送受信されない

私はこれを丸一日理解しようとしてきましたが、必死になり始めています...だからここに私の問題があります:

ファイルのリストを表示するテーブル ビュー コントローラーがあります。ユーザーは、このリストに新しいファイルをダウンロードできます。ダウンロードは別のクラスで非同期に処理します。新しいファイルがダウンロードされたら、テーブル ビュー コントローラーに通知して、リストを更新できるようにします。複数のインスタンスに通知する必要があるため、デリゲート パターンはここにはあまり適していません。そのため、NSNotificationCenter を使用したいと考えています。

ビュー コントローラーの viewDidAppear: メソッドで、オブザーバーとして登録します。

これは、通知を送信する前に確実に呼び出されます。これは、ユーザーがビュー コントローラーの追加ボタンをタップして新しいダウンロードを開始する必要があるためです。ダウンロードが完了したら、(DownloadManager クラスで) 通知を投稿します。

ただし、ビュー コントローラーの通知ハンドラー メソッドが呼び出されることはありません。ブレークポイントを追加しましたが、呼び出されていません。また、オブジェクトを nil に設定しようとしました。変わりはない。

通知の登録と投稿の両方がメインスレッドで行われます(とにかく問題ではないと思います)。ビューコントローラーは解放されていません。私が知る限り、タイプミスはありませんでした。名前の文字列は同じ定数です。

オブザーバーとして登録するときに name 引数を nil に設定すると、すべての種類の (システム) 通知を受け取りますが、自分自身の通知は受け取りません。ただし、(viewDidAppear で) 登録した直後にテスト通知を投稿すると、機能します。

他に何を確認すればよいかわかりません...ヒントは大歓迎です。ありがとう!

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

objective-c - NSCollectionView で空の選択を作成しない

NSCollectionViewココア アプリケーションでをセットアップしました。ビューの1つが選択/選択解除されたときにNSCollectionViewItemカスタムを送信するために、コレクションビューをサブクラス化しました。NSNotificationこの通知が投稿されたときに、コントローラー オブジェクト内で通知を受け取るように登録します。このメソッド内で、選択されたばかりのビューにそれが選択されていることを伝え、再描画するように伝えます。これにより、それ自体が灰色になります。

NSCollectionViewItemサブクラス:

コントローラ クラス (-(void)awakeFromNibメソッド内):

そして-(void)selectionChanged:(NSNotification *)notification方法:

このコードを含むアプリケーションでは、コレクション ビュー内で常に空の選択がないようにする必要があります。ここで私の問題が発生します。ビューの選択がいつ変更されたかを確認し、選択がない場合は再選択し、を使用してビューを手動で選択しようとしましNSCollectionView

-(void)setSelectionIndexes:(NSIndexSet *)indexes

しかし、コレクション ビューで空の選択が行われる状況が常に発生します。

NSCollectionViewそれで、空の選択が?で発生するのを防ぐ簡単な方法があるかどうか疑問に思っていました。Interface Builder にチェックボックスがありません。

前もって感謝します!

ベン

アップデート

結局、 my をサブクラス化しNSCollectionView、メソッドをオーバーライドしました- (void)mouseDown:(NSEvent *)theEvent[super mouseDown:theEvent];クリックがサブビューの1つであった場合にのみ、メソッドを送信しました。コード:

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

iphone - nil への NSNotificationCenter ポスト -> クラッシュ

通知用の私のTableViewCell登録。でも、いつになるかわからないので登録解除できません。NSNotificationCenter をサブクラス化しようとしましたが、正しい方法で試しませんでした。

これを修正する方法についていくつかのアイデアはありますか?

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

iphone - NSNotification のみ NSLog が機能します

私のクラス XI では、次のような通知を投稿します。

私のクラス YI では、次のように受け取ります。

コンソールには NSLog メッセージが表示されますが、私の UITextView はキーボードを非表示にしません。(たとえば、viewDidLoad では、resignFirstResponder/becomeFirstResponder が機能します。)

私がしなければならない特別なことはありますか?

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

ios - View Controllerが完全に初期化される前に呼び出されるNSNotification

こんにちは、タブビューコントローラーにビューコントローラーがあります。tabview コントローラーのビューがデータを更新する必要がある場合は、NSNotification を使用してフラグを立てることにしました。以前は、それぞれにデータ モデルの状態を判断し、それに応じて更新するロジックがありました。

私の更新コードは、デリゲート メソッドを呼び出すいくつかのものを呼び出します。通知を使用しない場合、これらはすべて機能していました。

私の最初の通知の試みは、View Controllerが初期化される前に(少なくともviewDidloadの前に)セレクターを呼び出したようです。特に、通知セレクターの更新が実行され、View Controller が更新されなかった場合、デリゲート メソッドは呼び出されませんでした。ビューコントローラーが不明な状態にあるようです。

私はテストを実行し、viewDidLoad に同じ更新コードを入れ、viewDidLoad が呼び出された後にのみ通知コードを呼び出しました。これは機能します。

私の質問は、viewDidLoad またはオブジェクトが正しく初期化される前に通知セレクター メソッドが呼び出されるのを防ぐ別の方法があるかどうかです。

ストーリーボードを使用しているため、ビューの作成などをプログラミングしていません。

これが明確であることを願っています-大量のコードを投稿することは、これほど簡単ではありませんでした.

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

iphone - NSNotification オブジェクトからデータを取得するにはどうすればよいですか?

新しい場所を通知オブジェクトとして、場所の更新を送信しようとしています。通知からデータにアクセスしようとすると、「EXC_BAD_ACCESS」エラーが発生します。「po location」を実行するとデータが表示されるのですが、取得できない理由がよくわかりません。オブザーバーを設定するときに、オブジェクト パラメーターをメンバー変数に代入しようとしましたが、locationUpdate が呼び出されません。

これが私のコードです(ARCが有効になっていることに注意してください):

// LocationController.h

// LocationController.m

// Notification.h

// Notification.m

// ViewController.h

// ViewController.m

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

objective-c - オブザーバーの割り当てが解除されたためにクラッシュしているNSNotificationを特定する方法

使用の黄金律NSNotification

「 (または)の割り当てが解除removeObserverされる前に呼び出します」。observerobject

このルールが守られていないコードベースを扱っていますが、違反を見つけることができません。コードを検索して、すべてaddObserverが一致していることを確認しましremoveObserverたが、次の種類のクラッシュレポートがまだ表示されています。

このクラッシュレポートの私の解釈は[UIApplication _handleApplicationSuspend:eventInfo:]、オブザーバーが削除される前に割り当てが解除された通知を投稿することです。

この解釈が正しいと仮定すると、どの通知が投稿されているかをどのように判断すればよいでしょうか。そして理想的には、割り当て解除されたオブジェクトタイプは何ですか?