主要就如下幾點:html
一、nil:通常賦值給空對象;spa
二、NULL:通常賦值給nil以外的其餘空值。如SEL等;指針
舉個栗子(好重啊~):htm
[NSApp beginSheet:sheet
modalForWindow:mainWindow對象
modalDelegate:nil //pointing to an objectblog
didEndSelector:NULL //pointing to a non object/classget
contextInfo:NULL]; //pointing to a non object/classio
三、NSNULL:NSNull只有一個方法:+ (NSNull *) null;class
[NSNull null]用來在NSArray和NSDictionary中加入非nil(表示列表結束)的空值.泛型
四、當向nil發送消息時,返回NO,不會有異常,程序將繼續執行下去;
而向NSNull的對象發送消息時會收到異常。
-------------------------
如下轉載自:http://blog.sina.com.cn/s/blog_722017670100v2b4.html
nil: A null pointer to an Objective-C object. ( #define nil ((id)0) )
nil 是一個對象值。
Nil: A null pointer to an Objective-C class.
NULL: A null pointer to anything else. ( #define NULL ((void *)0) )
NULL是一個通用指針(泛型指針)。
NSNull: A class defines a singleton object used to represent null values in collection objects (which don't allow nil values).
[NSNull null]: The singleton instance of NSNull.
[NSNull null]是一個對象,他用在不能使用nil的場合。
由於在NSArray和NSDictionary中nil中有特殊的含義(表示列表結束),因此不能在集合中放入nil值。如要確實須要存儲一個表示「什麼都沒有」的值,能夠使用NSNull類。NSNull只有一個方法:
+ (NSNull *) null;