if(property)
1.(该内存有东西)内存地址存在,不为空,因此就为非0,
2.(该内存没有东西)内存地址不存在,为空,因此就为0,
简单的说就是判断property 是否为null和nil 不是null和nil则进入
重点:if(property),只能判断这个属性有没有被赋值
一.(null)与<null>
1)打印为(null) 时说明这个对象是空,也就是nil或者NULL
比如说从字典里取值,但是这个键值对不存在会就会使nil ,属性没有赋值也为nil;
特别注意:字典和数组中存放的是对象.如果你声明一个指针属性或者对象,但是没有赋值, 如果这时候你把它存放进字典或数组就会crash 因为他是nil或者NULL 而不是对象.
从字典取值不受影响,他会拿着key去配对,取得相应的value,如果没有value则为nil
所以存入字典或数组前,必须判断->if(property)
2)打印为<null>,说明这个对象为NSNull对象
nsnull 是对象,if(nsnull)返回的是YES
NSNull是对象,所以可以存入数组和字典
3) @""与nil
@""!不等于nil ,@""只是说这个字符串没有内容 还是对象,所以 if(@"")可进入
NSString *str = @"";
错误写法
if (str) {
//[图片上传中。。。(1)]不能用来判断是否是空串
}
正确写法
if (str.length == 0) {
//这样就不会跳进来,因为是空串
}