1. ホーム
  2. ios

本スレッドにNSNotificationを投稿する

2023-12-08 10:23:23

質問

次のようなコード・スニペットを見つけました。 NSNotification を任意のバックグラウンドスレッドからメインスレッドに投稿することができます。私は、これが安全で許容される行為であるかどうかを知りたいのです。

dispatch_async(dispatch_get_main_queue(),^{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ImageRetrieved" 
                                                        object:nil 
                                                      userInfo:imageDict];
});

どのように解決するのですか?

はい、できます。 .

一般的に、NSNotificationはメインで送信されることを望みます。特に、モーダルログインダイアログを閉じるようなUIアクティビティをトリガーする場合です。

特定のスレッドに通知を配信する

<ブロッククオート

通常の通知センターは、通知が投稿されたスレッドに通知を配信します。 通知を配信します。分散型通知センター はメインスレッドに通知を配信します。場合によっては 通知センターではなく、ユーザーが決定した特定のスレッドで通知を配信するよう 特定のスレッドで通知を配信する必要がある場合があります。例えば バックグラウンドスレッドで実行されているオブジェクトが、ウィンドウが閉じるなどのユーザーインターフェイスからの通知を 例えば、バックグラウンドスレッドで動作しているオブジェクトがユーザーインターフェイスからの通知(ウィンドウが閉じるなど)をリッスンしている場合、バックグラウンドスレッドで通知を受け取りたいとします。 メインスレッドではなくバックグラウンドスレッドで通知を受信したい場合 で受信したいとします。このような場合、メインスレッドではなくバックグラウンドスレッドで通知を受け取る必要があります。 デフォルトスレッドで配信された通知を捕捉し、適切なスレッドにリダイレクトする必要があります。 適切なスレッドにリダイレクトする必要があります。