相关疑难解决方法(0)

什么时候我应该在Objective-C中使用nil和NULL?

这是示例代码:

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]");
Run Code Online (Sandbox Code Playgroud)

我什么时候应该使用nil,NULL和[NSNull null]?

null objective-c nsnull

165
推荐指数
9
解决办法
11万
查看次数

是NULL和零等价?

其实我的问题是:是nullnil等价的?

我有一个例子,但是当他们不相同时我很困惑.

NSNull *nullValue = [NSNull null];
NSArray *arrayWithNull = [NSArray arrayWithObject:nullValue];
NSLog(@"arrayWithNull: %@", arrayWithNull);
id aValue = [arrayWithNull objectAtIndex:0];

if (aValue == nil) {
    NSLog(@"equals nil");
} else if (aValue == [NSNull null]) {
    NSLog(@"equals NSNull instance");
    if ([aValue isEqual:nil]) {
        NSLog(@"isEqual:nil");
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,在上述情况下,它表明,无论nullnil不相等并显示"等于NSNull实例"

NSString *str=NULL;
id str1=nil;
if(str1 == str)
{
   printf("\n IS EQUAL........");

}
else
{
    printf("\n NOT EQUAL........");
}
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,它显示两者相等,并显示"IS EQUAL".

任何人的帮助将不胜感激.

谢谢Monish.

null objective-c nsnull

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

nsnull ×2

null ×2

objective-c ×2