如何檢查NSInteger是否有效?NSInteger!= nil
NSInteger previousScore = [[self score] integerValue];
if (previousScore != nil) {
//do something
}
如何檢查NSInteger是否有效?NSInteger!= nil
NSInteger previousScore = [[self score] integerValue];
if (previousScore != nil) {
//do something
}
如果你想在你的代碼的合法性進行檢查,你會做這樣的事情:
NSNumber *previousScore = [self score];
if (previousScore != nil) {
NSInteger previousScoreValue = [previousScore integerValue];
// do something
}
這可以作爲你得到回一個對象,而不是原始值。
NSInteger
不是一個對象。它只是一個簡單的原型int
。因此,它永遠不會是nil
。就像直接使用int
一樣對待它。
編輯: ,闡述在塞薩爾的評論,在64位系統NSInteger
實際上是一個long
和32位系統這是一個int
。
定義爲:#if __LP64__ typedef long NSInteger; #else typedef int NSInteger; endif – 2011-01-25 01:51:33
其實在默認情況下,在很多情況下,NSInteger將是零,因爲nil與零相同......儘管如此,您可能會收到編譯器警告。在給定previousScore的示例代碼中,如果[self score]返回零,則將爲0(零)... – 2011-01-25 02:34:44
刪除了稱呼:「提前致謝」,不要在下次 – 2015-05-17 13:52:11