1.nil: 指向一個(gè)對(duì)象的空指針, 對(duì)Objective-C中id對(duì)象付空值.
2.Nil:指向一個(gè)類(lèi)的空指針, a null pointer to a Objective-C class.表示對(duì)類(lèi)進(jìn)行付空值.
3.NULL:指向其它類(lèi)型的空指針(如:C類(lèi)性,基本類(lèi)型)A null pointer to anything else, is for C-style memory pointers.
4.NSNull:Objective-C中的一個(gè)類(lèi),包含 + (NSNull *)null;單例方法呀非,多用于集合中值為空的對(duì)象。
For example:
NSString *string = [NSString stringWithFormat:@"Test"]; string = nil;
NSURL *url = nil;
NSArray * array = [NSArray arrayWithObjects:@"test",@"test1" ,nil];
[array release];
if (array)
{
//僅僅對(duì)數(shù)組release彬檀,并沒(méi)有賦空值的話姨蝴,在程序某個(gè)地方如果繼續(xù)對(duì)數(shù)組操縱焊傅,程序直接崩潰
NSString * string = [array objectAtIndex:0];
NSLog(@"%@",string);
}
Class class = Nil;
int *pointer = NULL;
NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [NSNull null], nil];
NSArray 和 NSDictionary 都是以nil結(jié)尾;
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:nil forKey:@"Key-nil"]; 會(huì)crash
[dictionary setObject:[NSNull null] forKey:@"Key-nil"];不會(huì)引起crash
[dictionary setObject:(value == nil ? [NSNull null] : value) forKey:@"key"];