比较NSNumber与固定值?

时间:2010-03-11 19:51:08

标签: objective-c cocoa

有没有更好的方法来比较NSNumber与固定值,它只是感觉有点笨重。

if([myNumber isEqualToNumber:[NSNumber numberWithInt:0]]) NSLog(@"Zero");

我知道我可以使用-compare但看起来几乎一样......

加里

2 个答案:

答案 0 :(得分:50)

if ([myNumber intValue] == 0)怎么样? (或显然是<或>。)

答案 1 :(得分:5)

NSNumber个对象可以包含整数,浮点数,双精度等。 Ben的方法(与NSNumber的{​​{1}}相比)非常快速且易于阅读,但只有在intValue始终在{myNumber范围内时才能正常工作{1}}(即使在将来的代码更改后也会如此)。

出于这个原因,如果您不知道int的确切类型,那么您的方法实际上更优越。

myNumber

如果与较大的固定数字或浮点数进行比较,您无论如何都必须走这条路线。 此外,如果您尝试使用错误类型创建NSNumber,Xcode的最新版本将正确警告您,这可以帮助尽早发现问题:

Xcode 6.1.3 implicit conversion warning NSNumber