我有一个NSString
存储在核心数据中的。它是可选的,我相信 sqlite db 意味着它可以为空。我有一个方便的方法,我称之为“isEmptyOrWhitespace”,如下所示:
- (BOOL)isEmptyOrWhiteSpace {
return self == nil ||
self.length == 0 ||
[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length == 0;
}
当我的核心数据字符串为零时,它似乎没有调用这个方法,也就是说断点永远不会被命中。这特别烦人,因为像这样的代码块:
if(![string isEmptyOrWhitespace]) {
[string doSomething];
}
doSomething
如果字符串为零,则正在运行,显然不是我的意图。有没有办法在调用方法之前不检查我的字符串是否为 nil 来解决这个问题?或者这是不是在 nil 对象上运行方法的 Objective-C 的“特性”?