1、nil
當一個對象置爲nil時,這個對象的內存地址就會被系統收回。置空以後是不能進行retain,copy等跟引用計數有關的任何操做的。
2、Nil
nil徹底等同於Nil,只不過因爲編程習慣,人們通常把對象置空用nil,把類置空用Nil。
3、NULL
這個是從C語言繼承來的,就是一個簡單的空指針
4、[NSNull null]
這個纔是重點:[NSNull null]和nil的區別在於,nil是一個空對象,已經徹底從內存中消失了,而若是咱們想表達「咱們須要有這樣一個容器,但這個容器裏什麼也沒有」的觀念時,咱們就用到[NSNull null],它就是爲「值爲空的對象」。若是你查閱開發文檔你會發現NSNull這個類是繼承NSObject,而且只有一個「+ (NSNull *) null;」類方法。這就說明NSNull對象擁有一個有效的內存地址,因此在程序中對它的任何引用都是不會致使程序崩潰的。編程