問題タブ [nsnotifications]

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

iphone - View Controller が NSNotification を受信しないことがある

そのため、さまざまなケースで NSNotifications をテストしているだけですが、これは混乱を招きます。NSNotifications を理解するのを手伝っていただければ幸いです。

ナビゲーションコントローラーがあります。

「追加」という UIBarButtonItem があり、通知を投稿します DidAddNotification

[追加] をクリックすると、view2 にプッシュされます。

私は再び 3 を表示するように自分をプッシュします。

ビュー 3 から popToRootViewControllerAnimated:YES を実行すると、1 に戻り、同じ手順を繰り返します。

コントロールはこんな感じで・・・

出力 (NSLogs) は次のとおりです。

初めて [追加] を押します。

もう一度 [追加] を押します。

[追加] をもう一度押します。

誰か教えてくれませんか

  1. NSLog は最初はビュー 3 で印刷されませんでしたが、それ以外は常に印刷されますか?
  2. NSLog がビュー 2 で初めて印刷し、二度と印刷しないのはなぜですか?

コード:

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

objective-c - NSNotification がすべてのオブザーバーに届かない

NSNotification特定の一連のイベントに使用します。ビュー1に「追加」ボタンがあり、クリックするとビュー1からビュー2、ビュー3、ビュー1に戻るという3つのビューがあります。

1->2->3->1

ビュー 1 の [追加] ボタンがクリックされた場合は、sを使用NSNotificationしてビュー コントローラーをプッシュし、ビュー 1 によって投稿された通知に基づいて、他のビューをそれぞれ更新します。

ビュー 1 から通知が送信されると、ビュー 2 だけがそれを受け取ります。ビュー 3 にはありません。

これはどのように可能ですか?オブザーバーのコードは、ビュー 2 とビュー 3 でまったく同じです。

これはビュー 2 とビュー 3 にオブザーバーを追加するためのコードです。

dealloc()関数内でも適切に削除します。

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

objective-c - スレッドのように NSNotificationQueue を呼び出す方法はありますか?

次のような通知を実行することは可能ですか

「-(void)testMethod」が NSLog の実行に進むように...、通知によって呼び出されたメソッドが終了しませんでした。スレッドなしで解決する方法はありますか?

0 投票する
14 に答える
85253 参照

objective-c - Objective-C:NSNotificationのオブザーバーをどこから削除しますか?

私はObjectiveCクラスを持っています。その中で、initメソッドを作成し、その中にNSNotificationを設定しました

[[NSNotificationCenter defaultCenter] removeObserver:self]このクラスのどこに設定しますか?UIViewControllerについては、メソッドに追加できることを知ってviewDidUnloadいます。それでは、Objective Cクラスを作成した場合、何をする必要がありますか?

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

objective-c - Objective C:1つのクラスに2つのNSNotificationsを設定する際の問題はありますか?

2つのNSNotificationsが実装されたクラスがあります

1つのクラスに2人のオブザーバーを設定してもよいかどうかを確認したいのですが。また、オブザーバーを削除すると、deallocメソッドでオブザーバーを1つだけ削除します。それは問題ですか?

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

objective-c - 複数のオブザーバーを持つシングルトンの KVO?

現在、シングルトンのプロパティが変更されたときに、KVO または NSNotifications を使用して iOS アプリの複数のオブジェクトに警告するかどうかを検討しています。

変更を通知する必要があるすべてのオブジェクトにはシングルトンへの参照があるため、KVO は自然な解決策のように思えます。ただし、シングルトンと複数のオブザーバーで KVO を使用したことがないため、そのパターンが適切かどうか、または可能かどうかさえわかりません。

複数のオブザーバーを持つシングルトンで KVO を使用することは良い考え (または可能) ですか?

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

ios4 - IPhone 通知タイプのアプリケーションは、通知があることを目立たないようにユーザーにどのように表示する必要がありますか?

基本的にWebサービスにクエリを実行するだけのプログラムがあり、データが返された場合はその情報がユーザーに表示されますが、表示するものが何もない場合は、次のスケジュールされた時間まで待機して実行されます。

現在、ユーザーの前に表が表示されているだけで、ステータス バーには何も選択して実際の情報を表示することはできません。

それで、私は2つの質問があります。

  1. 邪魔にならない通知情報をユーザーに表示するためのより良い方法はありますか?
  2. UITable を持つビューには、終了時にビューを閉じるボタンが必要ですか?

アップデート:

私の質問は十分に明確ではないようですので、データがテーブルに正しく表示されています。

私の問題は、データを表示する前です。

現在、定期的にタイマーが私のメソッドを起動し、ユーザーに対して保留中のイベントがある場合、テーブルはそれらの前に表示されます。

それは悪い設計です、IMO、私が望むのは、保留中の何かがあることを彼らに知らせる簡単な方法であり、彼らがちょっとしたときにそれを見ることができるということです.

理想的には、ステータス バーに何かイベントがあることを示すものがあればよいのですが、それは私が見ることができるオプションではないようです。

1 つのオプションは、テーブルを最小化して音や振動を消すことができるかどうかを確認することですが、ユーザーが行っていることを中断する可能性があるため、ユーザーにとっては煩わしい場合があります。

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

objective-c - 通知で特定の NSDocument インスタンスを閉じる

次の問題があります。私が構築した小さな IDE で XCode のような「新しいプロジェクト」ワークフローを再現しようとしています。このために、ユーザーが「新しいプロジェクト」を選択したときにドキュメントウィンドウコントローラーによって作成されたウィンドウでモーダルを実行するシートがあります。シートは nib から開始され、いくつかのサブビューを (View Controller を介して) 段階的なアプローチでロードし、新しいプロジェクトを保存するポイントまでプロジェクト (タイプ -> パラメーターなど) を設定します。ここまでは順調ですね。

私が抱えている問題は、保存する前にプロセスをキャンセルしようとしたときです。開いている可能性のある他のドキュメント インスタンス (別名「プロジェクト」) を閉じずに、モーダル シートとドキュメント インスタンスを閉じる方法がわかりません。

私のアプリには、デリゲート、NSWindowController および他のいくつかのコントローラーとニブを介して制御される NSDocument クラスがあります。今のところ、アプリケーション デリゲートに通知ベースのアプローチを実装することを考えていますが、把握できません。

正しい方向に向けていただければ幸いです。

からだに気をつけてね、

トム

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

ios - 通話ステータスの NSNotification はありますか

デバイスが電話のオン/オフのときに観察できる NSNotification はありますか?

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

iphone - NSNotificationはモーダルビューを却下しません

タスク: ログインと呼ばれるモーダルビューをプッシュするナビゲーションコントローラーがあります。このログインビューには、サインアップと呼ばれる別のモーダルビューを押すボタンがあります。ユーザーがサインアップモーダルにサインアップし、ログインモーダルが閉じられる必要がある場合。サインアップ送信アクションからの投稿を待機する通知をログインビュー内に作成しました。

問題ログインは通知を受け取りますが、ログインビューを閉じません。NSLogが起動するため、メソッドが実行されることを知っています。

ログインviewDidLoad

ログイン却下

サインアップ方法(子コントローラー)

サインアップメソッドでdismissを呼び出した後もこれを試しました

編集私はこれらのコントローラーをプッシュしていません。使ってますpresentModalViewController