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計算準確