浅谈iOS 中 nil、Nil、null以及NSNull的区别


以下代码是直接在工程中验证的,所以可以直接粘贴到工程中查看运行结果。

关于null的用法还不是太明确,欢迎交流。


//******************nil  Nil  null  NSNull**************

    

    NSDictionary* dic = @{@"key":@"value"};

    

    NSString* string = dic[@"key2"];

    

    

    int i = (int)dic[@"key2"];

    

    

    //return : (string:(null),int:0)  int 类型的nil 0

    NSLog(@"string:%@,int:%d",string,i);

    

    //Nil 一个类的空指针   nil一个实例或变量的空指针  null可以看做是基本数据类型为空

    if (string == Nil && string == nil) {//执行

        

        NSLog(@"nil,Nil");

    }

    

    string = nil;

    

    //nil 发消息不会crash

    [string substringFromIndex:0];

    

    NSLog(@"string == nil 后:%@",string);

    

    if (i == 0 ) {//执行 i == nil 是错误的语法

        NSLog(@"0");

    }

    

    //NSNull  通常作为占位符

    NSObject* obj = [NSNull null];

    

    NSArray *array = [NSArray arrayWithObjects:@"One", @"TWO", obj,@"three",nil];


    NSLog(@"arr object:%@",array);

    

    for (id subArray  in array) {

        if (subArray != [NSNull null]) {

            NSLog(@"arr object2:%@",subArray);

        }

    }

    



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值