Objective c 如果(aValue)其中aValue是一个指针,那么我们到底在做什么?
指针是否发生隐式转换/强制?如果是,是什么类型 在这两种情况下,这是否完全等同于if(aValue!=nil)?在这两种情况下,这是否完全等同于if(aValue!=nil) 对。您只是在测试指针是否为非零值。可能是垃圾。可以指向任何随机对象。没关系。Objective c 如果(aValue)其中aValue是一个指针,那么我们到底在做什么?,objective-c,type-conversion,Objective C,Type Conversion,指针是否发生隐式转换/强制?如果是,是什么类型 在这两种情况下,这是否完全等同于if(aValue!=nil)?在这两种情况下,这是否完全等同于if(aValue!=nil) 对。您只是在测试指针是否为非零值。可能是垃圾。可以指向任何随机对象。没关系。if(aValue)检查值是否为非零,如在基于C的语言中,0对应于false,非零对应于true if(aValue!=nil)检查值是否与nil不同,nil定义为(id)0 因此,这两种情况将aValue比较为零。其含义来自C语言,Objecti
if(aValue)
检查值是否为非零,如在基于C的语言中,0对应于false
,非零对应于true
if(aValue!=nil)
检查值是否与nil
不同,nil
定义为(id)0
因此,这两种情况将aValue比较为零。其含义来自C语言,Objective-C是其超集。在C语言中,
if
语句实际上并不测试布尔真/假,而是测试表达式是否为非零
因此,当if
中的表达式为任何指针类型时,如果指针值为非零,则选择“then”分支;如果指针值为0,则选择else
分支(也称为nil
)。因此:
在这两种情况下,这是否完全等同于if(aValue!=nil)
对