nil、Nil、NULL、NSNull的區別數組
nil:指向一個對象的空指針url
Nil:指向一個類的空指針指針
NULL:指向其餘類型(如:基本類型、C類型)的空指針對象
NSNull:一般表示集合中的空值it
舉例:class
NSURL *url = nil;集合
Class class = Nil;poi
int *pointerInt = NULL;co
NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];block
爲何上面的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計算準確