以下是示例代码:
NSDictionary *myDictionary = [NSDictionary dictionary];
NSNumber *myNumber = [myDictionary valueForKey: @"MyNumber"];
NSLog(@"myNumber = %@", myNumber); // output myNumber = (null)
if (myNumber == nil)
NSLog(@"test 1 myNumber == nil");
if (myNumber == NULL)
NSLog(@"test 2 myNumber == NULL");
if ([myNumber isEqual:[NSNull null]])
NSLog(@"test 3 myNumber == [NSNull null]");
什么时候应该使用nil、NULL和NSNull null
发布于 2009-10-14 05:32:49
您可以在任何可以使用null
的地方使用nil
。主要区别在于,您可以将消息发送到nil
,因此您可以在null
无法工作的一些地方使用它。
一般来说,只要使用nil
即可。
发布于 2009-10-14 07:49:03
它们的类型不同。它们都是零,但是NULL
是一个void *
,nil
是一个id
,而Nil
是一个类指针。
发布于 2009-10-14 15:56:36
NULL和nil彼此相等,但是nil是一个对象值,而NULL是一个通用指针值(具体来说,是(void*)0
)。[NSNull null]
是一个对象,用于在不允许使用nil的情况下代替nil。例如,在NSArray中不能有nil值。因此,如果需要表示"nil",可以使用[NSNull null]
。
https://stackoverflow.com/questions/1564410
复制相似问题