我有一個NSString
存儲在覈心數據。它是可選的,我相信在sqlite數據庫意味着它可以爲空。我有一個方便的方法我稱之爲「isEmptyOrWhitespace」如下圖所示:無NSString方法
- (BOOL)isEmptyOrWhiteSpace {
return self == nil ||
self.length == 0 ||
[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length == 0;
}
當我從核心數據字符串是零,它似乎並沒有調用這個方法,那就是斷點從不打。這是特別煩人,因爲一個代碼塊這樣的:
if(![string isEmptyOrWhitespace]) {
[string doSomething];
}
doSomething
如果字符串是零,顯然不是我的意圖正在運行。有沒有辦法解決這個問題,而不檢查我的字符串是否爲零之前調用一個方法?或者這是Objective-C的一個「特性」,即方法不能在零對象上運行?
'self == nil'是無意義的。如果條件成立,代碼將永遠不會運行。 –
@ W'rkncacnter我明白了。我會留下來,所以沒有人會犯同樣的錯誤。 –