區(qū)別:
nil:指向一個(gè)對(duì)象的空指針
Nil:指向一個(gè)類的空指針
NULL:指向其它類型(基本類型、C類型)的空指針
NSNull:通常表示集合中的空值酬滤,如果定義了一個(gè)NSArray签餐,為其分配了內(nèi)存,又想設(shè)置其中的內(nèi)容為空盯串,則可以用[NSNULL null]返回的對(duì)象來初始化NSArray中的內(nèi)容
舉例:
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里面的空對(duì)象不直接用nil氯檐?
如果用nil,就會(huì)變成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil, [[NSObject alloc] init], [[NSObject alloc] init], nil];体捏,那么數(shù)組到第二個(gè)位置就會(huì)結(jié)束冠摄。打印[array count]的話會(huì)顯示1而不是4
所以[NSNull null]通常可以作為一個(gè)數(shù)組的占位符几缭,從而是數(shù)組的count計(jì)算準(zhǔn)確