ary*_*axt 0 objective-c nsnumber
我在我的应用程序中发现了一个错误:逻辑是我NSNumbers使用"==" 比较两个,我相信它曾经起作用.但它不再传递iOS sdk 5,所以我需要使用isEqualToNumber.
iOS sdk 4.2的任何人都可以尝试运行以下代码并给我结果.我试图恢复到较旧的Xcode来自己测试,但我无法做到这一点.
NSNumber *num1 = [NSNumber numberWithInt:100];
NSNumber *num2 = [NSNumber numberWithInt:100];
if (num1 == num2)
{
NSLog(@"== YES");
}
else
{
NSLog(@"== NO");
}
Run Code Online (Sandbox Code Playgroud)
这isEqualToNumber是正确的解决方案.它曾经工作的事实纯粹是一个实现细节,其中数字是如何由内部系统缓存的.你永远不应该(可能不是你真正想要做的)比较对象==.==对象将比较它们的内存地址,而不是它们实际上是否相等.
| 归档时间: |
|
| 查看次数: |
2049 次 |
| 最近记录: |