fuz*_*oat 13 cocoa objective-c
是否有更好的方法来比较NSNumber与固定值,它只是感觉有点笨重.
if([myNumber isEqualToNumber:[NSNumber numberWithInt:0]]) NSLog(@"Zero");
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用-compare但它几乎看起来一样......
加里
Ben*_*ieb 50
怎么样if ([myNumber intValue] == 0)?(或<或>,显然).
NSNumber对象可以包含整数,浮点数,双精度等.本的方法(与NSNumbers相比intValue)非常快速且易于阅读,但只有当你能保证myNumber总是在一个范围内时才能正常工作int(并且总是如此,即使在未来的代码更改之后).
出于这个原因,如果你不知道确切的类型,你的方法实际上是优越的myNumber.
// This will work regardless if myNumber is an int, double etc.
[myNumber isEqualToNumber:[NSNumber numberWithInt:0]]
Run Code Online (Sandbox Code Playgroud)
如果与较大的固定数字或浮点数进行比较,您无论如何都必须走这条路线.此外,如果您尝试使用错误的类型创建NSNumber,Xcode的最新版本将正确警告您,这可以帮助及早发现问题:

| 归档时间: |
|
| 查看次数: |
15848 次 |
| 最近记录: |