1. 程式人生 > >淺談iOS 中 nil、Nil、null以及NSNull的區別

淺談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

(@"0");

    }

//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:%@"

,subArray);

        }

    }