不小心在开发过程中,得到了(null)以及<null>的返回值,找了好长时间只找到了一个关于<null>的。

由于要根据返回值进行判断,做出必要反应,因此必须知道返回值所代表的具体字符,在得到(null)后利用isEqual:和@“”,NULL,@“(null)”,nil,Nil比较后均得不到正确结果,弄得不知所措了,但是还是感觉像nil,不得已,创建一个字符串,赋值为nil,打印输出,果然是(null),想不通的是为什么不等。最后试了一下“==”,成功了。费尽周折之后才明白原来要这样用:

if(m_result==nil)

    NSLog(@"KDA!");

}

还有就是<null>,从网上找到了用法:

if([m_result isEqual:[NSNUll null]])

    NSLog(@"KDA!");

}

问题很简单,找不到原因解决就难了,不由感叹,基础最关键啊。

记下,希望能帮到别人一点点就够了。

 
案例: 请求网络数据返回的值有的为空 ,不能直接存起来 ,必须先判断一下
这里是登陆返回的个人信息网络数据

{

    birthday = "<null>";

    category = "<null>";

    counum = 0;

    filename = "<null>";

    level = 0;

    name = "<null>";

    password = a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3;

    sex = 0;

    tel = 15003876305;

    uid = 61;

}

这里有多个  "<null>" 怎么处理呢

//取出用户名昵称

NSString *nickName=data[@"name"];

YYCLog(@"%@",nickName);

这里取出来的nickName为<null>

//当返回的值为"<null>"用这个判断 为这个时给他赋一个值再存起来

if([nickName isEqual:[NSNull null]])

{

nickName=@"请设置您的昵称";

}

也可以用这个方法判断空值 和上面的一种方法一样 都可以解决这个问题

      [nickName isKindOfClass:[NSNull class]]
               用这个方法对于空值判断比较简单点      

//保存用户名和密码

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:username forKey:@"username"];

[defaults setObject:password forKey:@"password"];

[defaults setObject:nickName forKey:@"nickName"];

//同时存入磁盘

[defaults synchronize];

      这里解决问题
 
 
04-30 21:05