1. ホーム
  2. ios

[解決済み] NSAssertって、実は何が言いたいの?

2022-04-27 18:06:05

質問

というのも、これを聞かなければならないのです。アサーションに失敗すると、アプリがクラッシュすることだけは認識しています。NSAssertを使用する理由はそれでしょうか?あるいは、他にどんな利点があるのでしょうか?また、NSAssert をコード内で行うあらゆる仮定(例えば、パラメータとして -1 を受け取ることはないが -0.9 や -1.1 を受け取る可能性がある関数)のすぐ上に置くことは正しいのでしょうか?

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

アサートは、ある値が想定されるものであることを確認するためのものです。もしアサーションが失敗したら、それは何かが間違っていたことを意味するので、アプリは終了します。assertを使う理由のひとつは、渡されたパラメータのひとつがある値(またはある値の範囲)でないと動作しない、または非常に悪い副作用を引き起こす関数がある場合、その値が期待通りのものであることを確認するためにassertを置くことができ、そうでない場合は何かが本当に間違っているので、アプリを終了させることができます。アサートは、デバッグやユニットテストに非常に便利であり、また、ユーザーが邪悪なことをしないようにするためのフレームワークを提供する場合にも役立ちます。