0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[XCode][セキュリティ] 10 This method should not be called on the main thread as it may lead to UI unresponsiveness.

Last updated at Posted at 2023-08-05

10 This method should not be called on the main thread as it may lead to UI unresponsiveness.

(1)どういう意味ですか?
(2)どのように対処したらいいですか?

(1)どういう意味ですか?

 これは、「このメソッドはメインスレッド上で呼び出すべきではありません。UIの応答性の低下を引き起こす可能性があります。」というセキュリティ通知は、特定のメソッドがメインスレッド(UIスレッド)上で呼び出されているため、UIの応答性に影響を及ぼす可能性があることを意味します。メインスレッドは、UIの描画やイベント処理などを担当しており、重い処理を行うとUIが一時的にフリーズしたり、ユーザーの入力が遅れたりすることがあります。

(2)どのように対処したらいいですか?

 対処方法は、以下のような方法があります:

 メインスレッド以外で処理を実行する:重い処理や時間のかかる処理は、バックグラウンドスレッド(非UIスレッド)で実行することで、メインスレッドの応答性を維持します。バックグラウンドスレッドでの処理を行うために、GCD(Grand Central Dispatch)やOperation Queueなどの手法を使用します。
 非同期処理を使用する:長時間かかる処理は、非同期的に行うことでメインスレッドのブロックを防ぎます。非同期処理には、GCDやOperation Queue、Async/Awaitなどがあります。
 UIの更新はメインスレッドで行う:UIの更新(画面の描画やビューの変更)は常にメインスレッドで行う必要があります。バックグラウンドスレッドでUIを更新しようとすると、予期せぬ結果が生じる場合があります。
具体的な対処方法はコードの中身によって異なりますが、上記のようなアプローチを取ることで、メインスレッドでの重い処理によるUIのフリーズや遅延を回避することができます。


関連記事


制作チーム:サンストライプ

sunstripe_logo.png
http://sunstripe.main.jp/
サンストライプについて
制作チームのサンストライプのコンテンツについては以下の通り

月3回のコンテンツをリリースしています。
参加者は、プログラマーやデザイナー、イラストレーター、声優やVTuberなどが募集中です。

関連プロジェクト・支援団体

その他協力応援 / 支援者の集い

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?