iOS nil、NULL、Nil 、NSNull的區別

nil、Nil、NULL、NSNull的區別

nil:指向一個對象的空指針

Nil:指向一個類的空指針

NULL:指向其他類型(如:基本類型、C類型)的空指針

NSNull:通常表示集合中的空值

舉例:

NSURL *url = nil;

Class class = Nil;

int *pointerInt = NULL;

NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];

為什么上面的array里面的空對象不直接用nil?

如果用nil,就會變成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil,? [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么數組到第二個位置就會結束。打印[array count]的話會顯示1而不是4

所以[NSNull null]通常可以作為一個數組的占位符,從而是數組的count計算準確

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容