Objective-C語言中nil、Nil、NULL、NSNull的區別
以下內容是基于搜集整理的網上資料,供參考。
nil:指向Objective-C語言中對象的空指針,其定義值為(id)0。
Nil:指向Objective-C語言中類(Class)的空指針,其定義值為(Class)0。
NULL:指向C語言中的標準空指針,其定義值為(void *)0。
NSNull:在Objective-C語言的集合對象中,表示空值的對象,其定義值為[NSNull null]。[NSNull null]是一個對象,用在不能使用nil的場合。
因為在NSArray和NSDictionary中nil有特殊的含義(表示列表結束),所以不能在集合中放入nil值。如要確實需要存儲一個表示“什么都沒有”的值,可以使用NSNull類。例:[NSMutableArrayObj addObject:[NSNull null]];
若obj為nil:[obj message]將返回NO,而不是NSException。
若obj為NSNull:[obj message]將拋出異常NSException。