NSString
Core Data に保存されている があります。これはオプションですが、sqlite dbはnullになる可能性があることを意味すると私は信じています。ここに示す「isEmptyOrWhitespace」という便利なメソッドがあります。
- (BOOL)isEmptyOrWhiteSpace {
return self == nil ||
self.length == 0 ||
[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length == 0;
}
Core Data からの文字列が nil の場合、このメソッドを呼び出していないようです。つまり、ブレークポイントがヒットすることはありません。次のようなコード チャンクがあるため、これは特に厄介です。
if(![string isEmptyOrWhitespace]) {
[string doSomething];
}
doSomething
string が nil の場合に実行されていますが、明らかに私の意図ではありません。メソッドを呼び出す前に、文字列が nil かどうかを確認せずにこれを回避する方法はありますか? それとも、メソッドがnilオブジェクトで実行されないというObjective-Cの「機能」ですか?