Ios 用等质量数法比较两个NSN数
当我使用Ios 用等质量数法比较两个NSN数,ios,comparison,null,nsnumber,Ios,Comparison,Null,Nsnumber,当我使用isEqualToNumber比较两个NSNumber时,如果两个数字都nil,则返回false。为什么排序比较[nil isEqual:nil]总是返回false,而nil==nil返回true 这是标准行为。您将从isEqueslToString:等中获得相同的结果。这样做更好,因为您可以对不相等的对象进行弱引用,这将在释放时变为相等 您可以使用类似于number1.intValue==number2.intValue的条件,在这种情况下,它将为2个nil对象返回YES。但是,对于n
isEqualToNumber
比较两个NSNumber时,如果两个数字都nil
,则返回false。为什么排序比较[nil isEqual:nil]
总是返回false
,而nil==nil
返回true
这是标准行为。您将从isEqueslToString:
等中获得相同的结果。这样做更好,因为您可以对不相等的对象进行弱
引用,这将在释放时变为相等
您可以使用类似于
number1.intValue==number2.intValue
的条件,在这种情况下,它将为2个nil
对象返回YES
。但是,对于nil.intValue=@0.intValue[nil isEqual:nil]
比较对象,而nil==nil
比较指针,也会得到YES
指向nil的指针始终等于指向nil的指针。另一方面,不存在的对象不等于任何东西。我猜这将是默认行为。但是你能告诉我返回false背后的概念是什么吗。这只是好奇。如果它的工作方式不同,它可能会导致许多错误,看看我用weak
引用给出的示例就知道了。这就像你会比较两个房子的地址。如果他们有相同的地址,那么你可以说他们是平等的。但是如果你有两栋房子,而且都没有地址,你就不能说你谈论的是同一栋房子。有点牵强的比较,但我希望你能理解,谢谢。很好的例子。这就解决了我的好奇心。[nil isEqual:someObjectPointer]
向nil发送一条消息,它根据定义返回0。看见