不小心在開發過程中,得到了(null)以及的返回值,找了好長時間只找到了一個關於的。由於要根據返回值進行判斷,做出必要反應,因此必須知道返回值所代表的具體字元,在得到(null)後利用isEqual:和@“”,NULL,@“(null)”,nil,Nil比較後均得不到正確結果,弄得不知所措了,但是還...
不小心在開發過程中,得到了(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];
這裡解決問題