zoukankan      html  css  js  c++  java
  • 学习笔记-nil NULL NSNull Nil的区别

    nil--表示实例对象为空  例如  NSString * string = nil;
        
                                          NSArray * array = nil;    我们对于nil的调用 不会产生crash或者异常。例如,一个数组release了,但是没有nil,调用它或直接crash的,但是nil掉的话,就不会crash。

    NULL --(只是一个值)可以用在c语言的各种指针上   char * aa = NULL;
        
                                                      int mm = NULL;

    Nil --表示一个空类。 Class rootViewController = Nil;

    NSNull -- 它是一个单例类,.h里面 + (NSNull *)null; 它定义了一个单例类对象用来表示集合对象里面的空值。例如我的目的是 一个字典里面包含两个键值,最后的键值的值为空。

                                                                                                                       1. NSNumber * num = [NSNumber numberWithInt:1];
        
                                                                                                                       NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:num,@"1",nil,@"2", nil];打印dic  只剩下一个键值,{
                                                                                                                                                                                                                                                                                             1 = 1;
                                                                                                                                                                                                                                                                                                     }

                                                                                                                       2. NSNumber * num = [NSNumber numberWithInt:1];
      
                                                                                                                       NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:num,@"1",NULL,@"2", nil];打印dic  只剩下一个键值,{
                                                                                                                                                                                                                                                                                             1 = 1;
                                                                                                                                                                                                                                                                                                     }

                                                                                                                       3. NSNumber * num = [NSNumber numberWithInt:1];
      
                                                                                                                       NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:num,@"1",[NSNull null],@"2", nil];打印dic  只剩下一个键值,{
                                                                                                                                                                                                                                                                                           1 = 1;  

                                                                                                                                                                                                                                                                                           2 = "<null>";
                                                                                                                                                                                                                                                                                                     }

    实例说明   要想保证两个键值的要求,只有[NSNull null] 可以做到,这就是[NSNull null]与nil   NULL的区别。

  • 相关阅读:
    【前端】常用总结(二)
    【Golang】爬虫笔记
    ubuntu16.04安装SSH服务
    windows下配置pytorch环境
    使用VNC连接ubuntu16.4错误Authentication Failure问题
    window使用VNC远程ubuntu16.04
    ubuntu16.04安装nvidia显卡驱动
    python批量读取并显示图片,处理异常。
    将nii文件CT图像更改窗宽窗位之后保存成nii文件
    yaml.load与yaml.dump的用法
  • 原文地址:https://www.cnblogs.com/luningning0901/p/4876542.html
Copyright © 2011-2022 走看看