(null) 与空 及其字符串的判断

2017-04-23  本文已影响0人  傅里叶的幻想

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) {       
   //这样就不会跳进来,因为是空串
  }
上一篇 下一篇

猜你喜欢

热点阅读