有没有更好的方法来比较NSNumber与固定值,它只是感觉有点笨重。
if([myNumber isEqualToNumber:[NSNumber numberWithInt:0]]) NSLog(@"Zero");
我知道我可以使用-compare但看起来几乎一样......
加里
答案 0 :(得分:50)
if ([myNumber intValue] == 0)
怎么样? (或显然是<或>。)
答案 1 :(得分:5)
NSNumber
个对象可以包含整数,浮点数,双精度等。
Ben的方法(与NSNumber
的{{1}}相比)非常快速且易于阅读,但只有在intValue
始终在{myNumber
范围内时才能正常工作{1}}(即使在将来的代码更改后也会如此)。
出于这个原因,如果您不知道int
的确切类型,那么您的方法实际上更优越。
myNumber
如果与较大的固定数字或浮点数进行比较,您无论如何都必须走这条路线。 此外,如果您尝试使用错误类型创建NSNumber,Xcode的最新版本将正确警告您,这可以帮助尽早发现问题: