Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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
Objective c 用isEqual检验NSN数的相等性_Objective C_Nsnumber - Fatal编程技术网

Objective c 用isEqual检验NSN数的相等性

Objective c 用isEqual检验NSN数的相等性,objective-c,nsnumber,Objective C,Nsnumber,我的印象是,要测试NSNumber的值,您可以使用isEqual: 但是,当我使用下面的代码测试整数值为38的NSNumber的值时,我得到的是false而不是true。这其中是否有我所遗漏的微妙之处 if ([self.adding isEqual:@38]) { //they are equal } else { //they are unequal } 需要注意的是,当我使用if[self.adding intValue]==38时,我确实得到了预期的结果 在调试器中,NSNumber显

我的印象是,要测试NSNumber的值,您可以使用isEqual:

但是,当我使用下面的代码测试整数值为38的NSNumber的值时,我得到的是false而不是true。这其中是否有我所遗漏的微妙之处

if ([self.adding isEqual:@38]) {
//they are equal
}
else {
//they are unequal
}
需要注意的是,当我使用if[self.adding intValue]==38时,我确实得到了预期的结果

在调试器中,NSNumber显示为int38。

使用-isEqualToNumber:进行数值相等测试,该测试本身与-compare:方法的相等概念相关联


NSNumber实现为一个类集群。-isEqual:方法的核心可能是查看其他细微之处,例如这两个实例是否来自同一实际类型或其他类型,这在处理集合中的存储时可能很重要,但不会帮助您检查数据类型。这与您应该使用NSString的-isEqualToString:方法进行等效比较的原因相同

自我添加是如何构建的?例如,如果它是@38.5,它将不起作用,但如果它在转换为Int.Ok时起作用,它就会起作用。谢谢今后将使用isEqualToNumber