淺談iOS 中 nil、Nil、null以及NSNull的區別
以下程式碼是直接在工程中驗證的,所以可以直接貼上到工程中檢視執行結果。
關於null的用法還不是太明確,歡迎交流。
//******************nil Nil null NSNull**************
NSDictionary* dic = @{@"key":@"value"};
NSString* string = dic[@"key2"];
int i = (int)dic[@"key2"];
//return : (string:(null),int:0) int 型別的nil 是 0
NSLog(@"string:%@,int:%d",string,i);
//Nil 一個類的空指標 nil一個例項或變數的空指標 null可以看做是基本資料型別為空
if (string == Nil && string == nil) {//執行
NSLog(@"nil,Nil");
}
string = nil;
//給nil 發訊息不會crash
[string substringFromIndex:0];
NSLog(@"string == nil 後:%@",string);
if (i == 0 ) {//執行 i == nil 是錯誤的語法
NSLog
}
//NSNull 通常作為佔位符
NSObject* obj = [NSNull null];
NSArray *array = [NSArray arrayWithObjects:@"One", @"TWO", obj,@"three",nil];
NSLog(@"arr object:%@",array);
for (id subArray in array) {
if (subArray != [NSNull null]) {
NSLog(@"arr object2:%@"
}
}