読者です 読者をやめる 読者になる 読者になる

忘備録

日々の調べ物をまとめる。アウトプットする。基本自分用。

NSInvalidArgumentException reason: nil argument

Objective-C
HogeClass *hogeClass = nil; // HogeクラスはNSString型のproperty「hogeProperty」を持っている。実際のコードはメソッドから戻り値を受け取ってますが。

NSMutableString *string = [NSMutableString string];
[string appendString:hogeClass.hogeProperty];

こんなコードを書いたら

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString appendString:]: nil argument'

ってエラーに遭遇。

始めnilのproperyにアクセスしようとして落っこちているのかと思った。

しかし、よくエラーメッセージを見てみると引数が不正だとかおっしゃってますね。

そこでappendStringの定義をQuickHelpで見てみる。。。

f:id:mktktmr:20151027145459p:plain

引数がNonnullになってる。。。

そういうことか。。。

英語アレルギーを起こさずエラーメッセージをちゃんと見ないといけないですね(当たり前過ぎますが。。。)

同日追記

NSArrayオブジェクトの初期化にnilをぶっこもうとして似たような怒られ方してしまいました。。。

'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[7]'