本スレッドにNSNotificationを投稿する
2023-12-08 10:23:23
質問
次のようなコード・スニペットを見つけました。
NSNotification
を任意のバックグラウンドスレッドからメインスレッドに投稿することができます。私は、これが安全で許容される行為であるかどうかを知りたいのです。
dispatch_async(dispatch_get_main_queue(),^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"ImageRetrieved"
object:nil
userInfo:imageDict];
});
どのように解決するのですか?
はい、できます。 .
一般的に、NSNotificationはメインで送信されることを望みます。特に、モーダルログインダイアログを閉じるようなUIアクティビティをトリガーする場合です。
<ブロッククオート通常の通知センターは、通知が投稿されたスレッドに通知を配信します。 通知を配信します。分散型通知センター はメインスレッドに通知を配信します。場合によっては 通知センターではなく、ユーザーが決定した特定のスレッドで通知を配信するよう 特定のスレッドで通知を配信する必要がある場合があります。例えば バックグラウンドスレッドで実行されているオブジェクトが、ウィンドウが閉じるなどのユーザーインターフェイスからの通知を 例えば、バックグラウンドスレッドで動作しているオブジェクトがユーザーインターフェイスからの通知(ウィンドウが閉じるなど)をリッスンしている場合、バックグラウンドスレッドで通知を受け取りたいとします。 メインスレッドではなくバックグラウンドスレッドで通知を受信したい場合 で受信したいとします。このような場合、メインスレッドではなくバックグラウンドスレッドで通知を受け取る必要があります。 デフォルトスレッドで配信された通知を捕捉し、適切なスレッドにリダイレクトする必要があります。 適切なスレッドにリダイレクトする必要があります。
関連
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み】メインスレッドでタスクを実行するGCD
-
[解決済み]SwiftでどのようにGCDメインスレッド上のパラメータを持つメソッドを呼び出すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
制御が非ボイド関数の終了に達する
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] UITextFieldの最大文字数を設定します。
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] iOSとWatchKitで画像のtintColorを変更する方法
-
[解決済み] Swift 3でディスパッチキューを作成する方法
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?