かどうかを確認でき[string length] == 0
ます。nil で length を呼び出すと 0 が返されるため、これは有効であるが空の文字列 (@"") であるかどうか、および nil であるかどうかをチェックします。
編集:上記のコメントを読んだ後、空/nilだけでなく空白(技術的には空ではない)についてのあなたの懸念の1つを見逃したことに気付きました。これら 3 つの条件すべてをチェックする組み込みの方法は知りませんが、簡単な解決策は、テスト中に文字列から空白を削除することです。例えば:
NSString *str = @" "; //3 white spaces
if([str stringByTrimmingCharacterInSet: [NSCharacterSet whitespaceCharacterSet]] length] == 0)
{
NSLog(@"String is empty, nil or full of whitespace!");
}
結果: String is empty, nil or full of whitespace
!
whitespaceAndNewlineCharacterSet
それがあなたのニーズにより適している場合は、それを使用することもできます。StringIsNullOrEmpty
文字列を受け取り、上記のテストを実行するような別のメソッドを作成することをお勧めします。
ソース: Objective C で文字列が空かどうかをテストするにはどうすればよいですか?