Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSNumber比较iOS SDK 4.2与5,在Objective-C中?_Objective C_Nsnumber - Fatal编程技术网

NSNumber比较iOS SDK 4.2与5,在Objective-C中?

NSNumber比较iOS SDK 4.2与5,在Objective-C中?,objective-c,nsnumber,Objective C,Nsnumber,我在我的应用程序中发现了一个错误:逻辑是我用“==”比较了两个nsnumber,我相信它过去是有效的。但它不再在iOSSDK5上传递,因此我需要使用isEqualToNumber 任何使用iOS sdk 4.2的人都可以尝试运行以下代码并给出结果。我试图恢复到旧的Xcode来自己测试它,但我无法做到这一点 NSNumber *num1 = [NSNumber numberWithInt:100]; NSNumber *num2 = [NSNumber numberWithInt:100]; i

我在我的应用程序中发现了一个错误:逻辑是我用“==”比较了两个
nsnumber
,我相信它过去是有效的。但它不再在iOSSDK5上传递,因此我需要使用
isEqualToNumber

任何使用iOS sdk 4.2的人都可以尝试运行以下代码并给出结果。我试图恢复到旧的Xcode来自己测试它,但我无法做到这一点

NSNumber *num1 = [NSNumber numberWithInt:100];
NSNumber *num2 = [NSNumber numberWithInt:100];

if (num1 == num2)
{
    NSLog(@"== YES");
}
else
{
    NSLog(@"== NO");
}

这里的
isEqualToNumber
是正确的解决方案。它过去工作的事实纯粹是系统内部如何缓存数字的实现细节。您不应该使用
=
比较对象(可能不是阅读您真正想要做的)<对象上的code>=将比较它们的内存地址,而不是它们是否实际相等。

这里的
isEqualToNumber
是正确的解决方案。它过去工作的事实纯粹是系统内部如何缓存数字的实现细节。您不应该使用
=
比较对象(可能不是阅读您真正想要做的)
=
对象将比较它们的内存地址,如果它们实际上相等,则不进行比较。

不重复的可能重复,我不是在问答案,我知道答案是相等的数字。我问是否有人能告诉我iOS 4.2上的结果“我相信它曾经起作用”:根据上面链接的问题,从0到12的数字得到相同的NSNumber实例单例。但是你不应该依赖于它。这没有帮助,就像我在问题中提到的,我需要知道iOS 4.2上的行为是什么。我不知道怎样才能说得更清楚。我使用的NSNumbers是数据库中的自动递增数字,大部分为6-7位,因此链接的问题无法回答我的问题。问题是,如果4.2中的这种行为完全没有意义。这是不应该依赖的东西。你有一个4.2版本下的bug,在5.0版本中暴露出来,可能是重复的,不是重复的,我不是在问答案,我知道答案是相等的数字。我问是否有人能告诉我iOS 4.2上的结果“我相信它曾经起作用”:根据上面链接的问题,从0到12的数字得到相同的NSNumber实例单例。但是你不应该依赖于它。这没有帮助,就像我在问题中提到的,我需要知道iOS 4.2上的行为是什么。我不知道怎样才能说得更清楚。我使用的NSNumbers是数据库中的自动递增数字,大部分为6-7位,因此链接的问题无法回答我的问题。问题是,如果4.2中的这种行为完全没有意义。这是不应该依赖的东西。您在4.2下有一个bug,该bug在5.0中暴露