如何检查 NSInteger 是否有效?
NSInteger previousScore = [[self score] integerValue];
if (previousScore != nil) {
//do something
}
如何检查 NSInteger 是否有效?
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
一样对待它即可。
编辑:
为了进一步解释Cesar的评论,在64位系统上,NSInteger
实际上是long
类型,在32位系统中则为int
。