問題タブ [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.
ios - NSNotification ログ ステートメントが繰り返される
アプリを作成していますが、致命的なエラーの問題ではなく、少し問題があります。基本的NSNotification
に、ビューが解放された後も私の s は残っているので、ビューを 4 回戻すと、ビューをリロードした回数だけ「これはあなたの通知です」と表示されます。他のすべての方法NSLog
は、「これはログ ステートメントです」で問題ありません。release
NC は使用後に取り外す必要がありますか?
objective-c - Objective-c - ブール値を返す addObserver の構文
Xcode プロジェクトに sdk 呼び出しを追加しようとしていますが、ドキュメントには次のように書かれています。
「これらの API を使用している場合、次のイベントのオブザーバーになることができます:
NOTIFICATION_COMPLETED True/False - メールは成功/失敗で完了しました。」
私はここまで到達することができました:
または、それは正しいと思います...ただし、最後の nil についてはわかりません。
とにかく、_NotificationCompleted 関数をフォーマットする方法がわかりません...
これは私が書いたものです:
私は何を間違っていますか?
cocoa - 新しいオブジェクトがNSArrayControllerに追加されるまでに通知を受け取ります
アレイコントローラーに新しいオブジェクトが追加されるたびに、メソッド(またはセレクター)を実行したいと思います。
Key-Valueの監視で何とかできると思いますが、その方法は正確にはわかりません。
誰かが私にサンプルコードを教えてもらえますか?
ios - NSNotification が送受信されない
私はこれを丸一日理解しようとしてきましたが、必死になり始めています...だからここに私の問題があります:
ファイルのリストを表示するテーブル ビュー コントローラーがあります。ユーザーは、このリストに新しいファイルをダウンロードできます。ダウンロードは別のクラスで非同期に処理します。新しいファイルがダウンロードされたら、テーブル ビュー コントローラーに通知して、リストを更新できるようにします。複数のインスタンスに通知する必要があるため、デリゲート パターンはここにはあまり適していません。そのため、NSNotificationCenter を使用したいと考えています。
ビュー コントローラーの viewDidAppear: メソッドで、オブザーバーとして登録します。
これは、通知を送信する前に確実に呼び出されます。これは、ユーザーがビュー コントローラーの追加ボタンをタップして新しいダウンロードを開始する必要があるためです。ダウンロードが完了したら、(DownloadManager クラスで) 通知を投稿します。
ただし、ビュー コントローラーの通知ハンドラー メソッドが呼び出されることはありません。ブレークポイントを追加しましたが、呼び出されていません。また、オブジェクトを nil に設定しようとしました。変わりはない。
通知の登録と投稿の両方がメインスレッドで行われます(とにかく問題ではないと思います)。ビューコントローラーは解放されていません。私が知る限り、タイプミスはありませんでした。名前の文字列は同じ定数です。
オブザーバーとして登録するときに name 引数を nil に設定すると、すべての種類の (システム) 通知を受け取りますが、自分自身の通知は受け取りません。ただし、(viewDidAppear で) 登録した直後にテスト通知を投稿すると、機能します。
他に何を確認すればよいかわかりません...ヒントは大歓迎です。ありがとう!
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つであった場合にのみ、メソッドを送信しました。コード:
iphone - nil への NSNotificationCenter ポスト -> クラッシュ
通知用の私のTableViewCell登録。でも、いつになるかわからないので登録解除できません。NSNotificationCenter をサブクラス化しようとしましたが、正しい方法で試しませんでした。
これを修正する方法についていくつかのアイデアはありますか?
iphone - NSNotification のみ NSLog が機能します
私のクラス XI では、次のような通知を投稿します。
私のクラス YI では、次のように受け取ります。
コンソールには NSLog メッセージが表示されますが、私の UITextView はキーボードを非表示にしません。(たとえば、viewDidLoad では、resignFirstResponder/becomeFirstResponder が機能します。)
私がしなければならない特別なことはありますか?
ios - View Controllerが完全に初期化される前に呼び出されるNSNotification
こんにちは、タブビューコントローラーにビューコントローラーがあります。tabview コントローラーのビューがデータを更新する必要がある場合は、NSNotification を使用してフラグを立てることにしました。以前は、それぞれにデータ モデルの状態を判断し、それに応じて更新するロジックがありました。
私の更新コードは、デリゲート メソッドを呼び出すいくつかのものを呼び出します。通知を使用しない場合、これらはすべて機能していました。
私の最初の通知の試みは、View Controllerが初期化される前に(少なくともviewDidloadの前に)セレクターを呼び出したようです。特に、通知セレクターの更新が実行され、View Controller が更新されなかった場合、デリゲート メソッドは呼び出されませんでした。ビューコントローラーが不明な状態にあるようです。
私はテストを実行し、viewDidLoad に同じ更新コードを入れ、viewDidLoad が呼び出された後にのみ通知コードを呼び出しました。これは機能します。
私の質問は、viewDidLoad またはオブジェクトが正しく初期化される前に通知セレクター メソッドが呼び出されるのを防ぐ別の方法があるかどうかです。
ストーリーボードを使用しているため、ビューの作成などをプログラミングしていません。
これが明確であることを願っています-大量のコードを投稿することは、これほど簡単ではありませんでした.
iphone - NSNotification オブジェクトからデータを取得するにはどうすればよいですか?
新しい場所を通知オブジェクトとして、場所の更新を送信しようとしています。通知からデータにアクセスしようとすると、「EXC_BAD_ACCESS」エラーが発生します。「po location」を実行するとデータが表示されるのですが、取得できない理由がよくわかりません。オブザーバーを設定するときに、オブジェクト パラメーターをメンバー変数に代入しようとしましたが、locationUpdate が呼び出されません。
これが私のコードです(ARCが有効になっていることに注意してください):
// LocationController.h
// LocationController.m
// Notification.h
// Notification.m
// ViewController.h
// ViewController.m
objective-c - オブザーバーの割り当てが解除されたためにクラッシュしているNSNotificationを特定する方法
使用の黄金律NSNotification
は
「 (または)の割り当てが解除
removeObserver
される前に呼び出します」。observer
object
このルールが守られていないコードベースを扱っていますが、違反を見つけることができません。コードを検索して、すべてaddObserver
が一致していることを確認しましremoveObserver
たが、次の種類のクラッシュレポートがまだ表示されています。
このクラッシュレポートの私の解釈は[UIApplication _handleApplicationSuspend:eventInfo:]
、オブザーバーが削除される前に割り当てが解除された通知を投稿することです。
この解釈が正しいと仮定すると、どの通知が投稿されているかをどのように判断すればよいでしょうか。そして理想的には、割り当て解除されたオブジェクトタイプは何ですか?