• nil,定义一个空的实例,指向OC中对象的空指针。

     示例代码:
    NSString *someString = nil;
    NSURL *someURL = nil;
    id someObject = nil;
    if (anotherObject == nil) // do something 用法讲解:
     当对某个对象release 的同时最好把他们赋值为nil,这样可以确保安全性,如果不赋值nil,可能导致程序
    崩溃.
       NSArray * array = [NSArray arrayWithObjects:@"test",@"test1" ,nil];
       [array release];
      
       if (array)
       {
          //仅仅对数组release,并没有赋值为nil,在程序某个地方如果继续对数组操作,程序直接崩溃
       NSString * string = [array objectAtIndex:0];
       NSLog(@"%@",string);
       }
  • NULL,NULL可以用在C语言的各种指针上。

     #define __DARWIN_NULL
    #define__DARWIN_NULLConstants
    示例代码:
    int *pointerToInt = NULL;    
    char *pointerToChar = NULL;  
    struct TreeNode *rootNode = NULL; 用法讲解:
    在Objective-C里,nil对象被设计来跟NULL空指针关联的。他们的区别就是nil是一个对象,而NULL只是一个
    值。而且我们对于nil调用方法,不会产生crash或者抛出异常。
  • Nil,定义一个空的类

     示例代码:  
    Class someClass = Nil; 
    Class anotherClass = [NSString class];
  • NSNull,NSNull是一个类,它定义了一个单例对象用于表示集合对象的空值

     集合对象无法包含nil作为其具体值,如NSArray、NSSet和NSDictionary。相应地,nil值用一个特定的对象
    NSNull来表示。NSNull提供了一个单一实例用于表示对象属性中的的nil值。默认的实现方法中,
    dictionaryWithValuesForKeys:和setValuesForKeysWithDictionary:自动地将 NSNull和nil相互转换,因此您的对象不需要进行NSNull的测试操作。

转自:https://www.jianshu.com/p/6abd21fde286

iOS中nil 、NULL、 Nil 、NSNull的更多相关文章

  1. objective-C nil,Nil,NULL 和NSNull的小结

    nil用来给对象赋值(Object-C的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Object-C中类是一个对象,是类的meta-class ...

  2. iOS - nil null Nil笔记

    今天查看Nullability and Objective-C发现里面提到了nil和Null等关键字,做一下笔记. nil  ->   Null-Pointer to Objective-C O ...

  3. Objective-c nil, Nil, NULL和NSNull的区别

    在OC中可能经常会遇到 nil,Nil,NULL和NSNull,下面分析一下之间的区别: Symbol Value Meaning NULL (void *)0 literal null value ...

  4. OC,nil,NULL,Nil,kCFNull

    YYModel源码中有一句:kCFNull //解析model属性并附值 + (instancetype)yy_modelWithDictionary:(NSDictionary *)dictiona ...

  5. OC中Nil nil NULL 和 [NSNULL null]的区别

    关于这个问题看过两三次了,但是每次过两个月脑袋里又会不清晰,索性记录一下加深一下印象. 一.nil 当一个对象置为nil时,这个对象的内存地址就会被系统收回.置空之后是不能进行retain,copy等 ...

  6. nil,Nil,NULL和NSNull的区别

  7. iOS中nil、Nil、NULL、NSNull详解(转)

    ObjC 里面的几个空值符号经常会差点把我搞死,这些基础的东西一点要弄清楚才行,以提高码农的基本素质. nil nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interfa ...

  8. iOS中使用nil NULL NSNULL的区别

    nil NULL NSNULL的区别主要以下几点 1.nil:一般赋值给空对象 2.NLL:一般赋值给nil之外的其他空值.入SEL等. 3.NSULL:NSNULL只有一种方法+ (NSNull * ...

  9. iOS 中nil,Nil,NULL,NSNull的区别

    类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据 ...

随机推荐

  1. 问题解决: Pandas and scikit-learn: KeyError: […] not in index

    https://stackoverflow.com/questions/51091132/pandas-and-scikit-learn-keyerror-not-in-index The probl ...

  2. mysql创建账号对应的数据库方法

    增加一个用户mydb密码为123450, 让他只可以在(localhost/%)%表示可以支持远程上登录,并可以对数据库mydata5_db进行查询.插入.修改.删除的操作. grant select ...

  3. import { Subject } from 'rxjs/Subject';

    shared-service.ts import { Observable } from 'rxjs/Observable'; import { Injectable } from '@angular ...

  4. js setInterval()函数 [倒计时用]

    定义和用法:        setInterval() 方法用于在指定的毫秒数后调用函数或计算表达式.它与setTimeout()方法不同的是前者可以无限的循环,不会受调用函数的限制,要想退出此循环可 ...

  5. 并发insert情况下会发生重复的数据插入问题

    1.背景 用多线程接收推送的订单数据,把接收的订单数据存到一个表中,实现的需求是:如果接收的订单消息在数据库中已经存在,那么执行update操作:如果没有存在,那么执行insert操作代码逻辑: if ...

  6. ERROR C2676

    直接上代码: nl.h #ifndef NL_H #define NL_H #include <iosfwd> namespace ZJ { /** Insert a newline ch ...

  7. CSRF学习笔记之CSRF的攻击与防御以及审计【00x3】

    Hight.php完整代码如下: <?php if (isset($_GET['Change'])) { // Turn requests into variables $pass_curr = ...

  8. 基于ZK的分布式锁实现

    import java.util.concurrent.TimeUnit; import org.apache.curator.framework.CuratorFramework; import o ...

  9. 【Mac + Appium + Python3.6学习(五)】之常用的Android自动化测试API总结

    Github测试样例地址:https://github.com/appium-boneyard/sample-code/tree/master/sample-code/examples ①定位text ...

  10. 安装Node.js以及Hexo

    安装前提 安装 Hexo 相当简单.然而在安装前,您必须检查电脑中是否已安装下列应用程序: Node.js 如何在Ubuntu上安装最新版本的Node.js https://hexo.io/zh-cn ...