問題タブ [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.
cocoa - モーダルダイアログが開いているときに通知を受信するにはどうすればよいですか?
GUIスレッドにメッセージを送信する必要があります。このメッセージは、次にGUIスレッドがアイドル状態になったときに処理する必要があります。このメッセージは、GUIスレッドまたはバックグラウンドスレッドから送信される可能性があります。
MachPort/Notificationの組み合わせを試してみました。しかし、私がするとき
モーダルダイアログがある場合、これはディスパッチされません。処理する前にダイアログを閉じる必要があるため、これは使用できません。
メニュー選択中またはライブサイズ変更中にメッセージを処理しないことは問題ありませんが、モーダルダイアログは少し遅延が大きすぎます。
iphone - マルチメディアコンテンツを順番に再生する
こんにちは私は、映画や写真などのマルチメディアコンテンツをカプセル化するオブジェクトである「マルチメディアアクション」を多く含むNSArrayを持っています。それぞれが終了するのを待ってから、もう一方を呼び出す前に、順番に「再生」したいと思います。
次の操作を呼び出す前に、各操作の期間を管理するための最良の方法は何ですか?(写真の場合は数秒の遅延後に閉じるUIAlertViewを想像し、映画の場合は代わりにMPMoviePlayerControllerを想像してください)
NSOperationを使用して配列をスキャンするメソッドをすでに呼び出しています。
重要: NSOperation内で呼び出されたかどうかに関係なく、MPMovieControllerは再生されない(インターフェイスも表示されない)ようです。他の誰かがこの問題を経験しましたか?
UPDATEを使用performSelectorOnMainThread:
すると、MPMoviePlayerが期待どおりに機能します
iphone - UITabBarController インタラクションとともに NSNotification を管理する
UITabBarController を含む 1 つのメイン UIViewController があります。タブ バー コントローラーには 4 つの UIViewControllers (それぞれが UINavigationControllers によって管理されます) があります。簡潔に言うと、次のようになります。
FirstUIViewController はデフォルトで読み込まれます。
SecondUIViewController には、発生する可能性のあるイベントがあります。このイベントには、一緒に渡される特定のデータがあります。このイベントが発生すると、次の 2 つのことが発生します。
1) 別のタブが入力されたことを視覚的に示すために、タブ バー コントローラーで選択される 4 番目の UIViewController。
2) 特定の UITableViewCell が選択されている FourthUIViewController の後続のアクション。選択されたセルは、イベントで渡されるデータによって決定されます。
これを行うために、MainViewController に NSNotification オブザーバーを作成しました。SecondUIViewController からのイベントをリッスンし、userInfo を介してデータを取得します。
また、正しいタブを表示するために、MainViewController から UITabBarController に selectedIndex を簡単に設定できることも知っています。(#1達成)。
ただし、#2を達成すると困惑します。タブバーの selectedIndex を (適切に、正しく) 設定し、選択したセルに対して FourthUiViewController を動作させる方法がわかりません。私の仮定では、このイベントが発生する前に FourthUIViewController がロードされていない可能性があるため、パラメーターを設定したり、オブザーバーを呼び出したりすることはできませんでした。
おそらく、より広範な問題は、タブ選択によって UIViewController をロードするときにデータを渡す方法です (非常に簡単な新しい UIViewController をプッシュする場合と比較して)。
ティア。
objective-c - サーバーと頻繁に同期するモデルクラスをテストする必要がありますか?
そして、どうすればそれを行うことができますか。明らかに非同期メソッドがたくさんあり、単体テストでそれらをチェックする方法(私が知っている)がないからです。
例えば:
p>iphone - アプリがフォアグラウンドに入ったときにView Controllerのコンテンツを更新する
ユーザーが生成したコンテンツを含むいくつかのタブを持つタブ バーを備えたアプリがあります。各ビュー コントローラーが読み込まれると、viewDidLoad メソッドがサーバーに HTTP リクエストを送信してデータを取得し、それに応じてそのビューにデータを入力します。ただし、すべてのデータがロードされると、ビューは同じままです (View Controller がアンロードされて再ロードされない限り)。
ユーザー生成コンテンツを使用する他の多くのアプリも同様の動作をしますが、アプリがバックグラウンドに移行してから再びフォアグラウンドに戻ると、各ビューがリロードされます。つまり、アプリがアクティブなときにユーザーがさまざまなタブを切り替えても、コンテンツは自動的に更新されません。ユーザーがアプリを「終了」し、後でアプリに戻ると、ビューが再読み込みされます。
このように動作するようにアプリを設計するための標準的な方法はありますか? 具体的には、アプリの「再起動」に関するビューを更新するために利用できる UIKit の機能があるかどうか疑問に思っています。
それ以外の場合、簡単な方法は、viewDidLoad で各ビュー コントローラーを通知用に登録し、アプリがフォアグラウンドに入るのをリッスンすることだと思います。その後、コントローラーはデータをリロードすることで各通知に応答できます。
iphone - NSNotificationCenterはすべてのNSNotificationsをトラップおよびトレースします
「内部」で何が発生するかをよりよく理解するために、アプリケーション内で発生する通知を完全に追跡したいと思います。
私はナイーブですが、最初に試したのは次のように登録することでした。
私のアプリのどこか:
私は実際にその方法で多くの通知を受け取ります。しかし、ある時点でアプリケーションがクラッシュします。スタックトレースは、realizeClassのEXC_BAD_ACCESSでクラッシュしていることを示しています。これは、私の経験から、割り当て解除後に何かが呼び出されたことを示しています。私の観察対象はまだ生きていますが、そのデロケーターは(まだ)呼び出されていません。
次に試したのは、ブレークポイントを設定し、ブレークポイントがトラップされるたびにgdb-console内で-[NSNotificationCenter postNotification:]
実行することでした。po {NSNotification *}($ebp+16)
それはいくつかの通知を明らかにしましたが、私が期待/期待しているすべてではありませんでした。たとえば、私のアプリケーションは向きの変更を適切に処理しますが、デバイスの向きを変更するときに(シミュレーターで)通知がトラップされることはありません。
私は何が欠けていますか?NSNotificationCenterを確実に監視する方法(ツールなど)はありますか?
ヒントをありがとう。
iphone - Objective C-NSNotificationの内部オブジェクトにアクセスする方法は?
通知から内部オブジェクトにアクセスしたい。キーAVSystemController_AudioVolumeChangeReasonNotificationParameterを取得する必要があります。
[送信者オブジェクト]を呼び出すと、この出力が得られます。しかし、私が電話すると
「認識されないセレクターがインスタンスに送信された」だけが表示されます。何故ですか?
NSLog(@ "%@"、[送信者オブジェクト])出力:
userInfoにアクセスできない場合、NSLogの出力を取得して文字列検索を実行できますか?
iphone - NSNotification に登録するとアプリケーションがクラッシュしますか?
MPMovieplayerViewControllerを使用してムービーを再生していますが、ムービーが停止したときに通知を受け取るように登録したいです...次のコードを使用してNSNotificationを使用していますが、ムービーが停止するとアプリケーションがクラッシュします...同じ方法でNSNotificationを使用しました以前に問題なく実行されたとき..私が間違っていることについて何か考えはありますか??
私の AppDelegate クラスでは、このように登録しました
}
iphone - NSNotificationCenter:操作の実行にはどのくらい時間がかかりますか
通知を投稿してから通知を受け取るまでにどのくらいの時間がかかりますか。
その理由は、オブザーバーパターンが自分に適しているかどうかを調べたいからです。通知が送信されて処理される前に、別のViewControllerが値を変更できるようにしたくありません。別のプロセス(スレッド?)の方が高速で、値が上書きされるべきではないときに上書きされるのではないかと心配しています。
iphone - iphone-NSNotificationの目的は何ですか?
NSNotificationの目的と、それを使用できる状況について説明してください。
通知は、デリゲートを渡すことによって、アプリ内のすべてのクラスを呼び出しますか、それとも特定のクラスを呼び出しますか?
1つの通知を作成し、それを複数のクラスで受信することは可能ですか?