进击的UI---------------------(nil Nil NULL NSNULL)

  1.nil

  >Defines the id of a null instance.

  定义一个实例为空, 指向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);

      }

  2.NULL

  >These macros define null values for classes and instances.

  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或者抛出异常。

  3.Nil

  >Defines the id of a null class.

  定义一个空的类

  Available in Mac OS X v10.0 through Mac OS X v10.4.

  Declared in NSObjCRuntime.h.

  Declared Inobjc.h

  >示例代码:

  Class someClass = Nil;

  Class anotherClass = [NSString class];

  4.NSNull

  >The NSNull class defines a singleton object used to represent null values in collection objects (which don’t allow nil values).

  NSNull类定义了一个单例对象用于表示集合对象的空值

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

时间: 2024-10-12 15:52:38

进击的UI---------------------(nil Nil NULL NSNULL)的相关文章

step 5 NULL & nil & Nil & NSNULL

NULL & nil & Nil & NSNULL nil 是 OC 的,空对象,地址指向 空(0) 的对象 在 OC 中,可以给空对象发送任何消息,不会出现错误 NULL 是 C 的,空地址,地址的数值是 0,是一个长整数 表示地址是空 NSNull 用于解决向 NSArray 和 NSDictionary 等集合中添加空值的问题 值 定义 NULL (void *)0 C指针的字面零值 nil (id)0 Objective-C对象的字面零值 Nil (Class)0 Obje

iOS中使用nil NULL NSNULL的区别

nil NULL NSNULL的区别主要以下几点 1.nil:一般赋值给空对象 2.NLL:一般赋值给nil之外的其他空值.入SEL等. 3.NSULL:NSNULL只有一种方法+ (NSNull *) null; [NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值 4.注意:当想ni发送信息的时候,返回NO,不会有异常,程序可以继续执行下去:而向NSNULL对象发送消息的时候会收到异常 nil: A null pointer to an

[swift、oc]浅聊nil、Nil、NULL、NSNull的区别

我们都知道nil.Nil.NULL.NSNull都表示为空但是究竟有什么区别,相信大家也很少关注.今天我们就浅聊一下这几个空的区别 1.nil nil一般是指把一个对象置空,既完全是一个空对象,完全从内存中释放. 2.Nil Nil和nil基本没有任何区别,也可以说只要是可以使用nil的地方都可以使用Nil,反之亦然.但是作为程序猿,我们应该更加严谨一些.nil和Nil的区别在于,nil表示置空一个对象,二Nil表示置空一个类. 3.NULL 大家都知道oc 是基于c的,并且oc是完全兼容c的,

nil和Nil及NULL、NSNull的区别

nil:  是一个对象值:如果我们要把一个对象设置为空的时候就用nil; A null pointer to an Objective-C object. ( #define nil ((id)0) ) Nil :是一个类对象的值,如果我们要把一个Class类型的对象设置为空的时候就用Nil ; A null pointer to an Objective-C class. NULL  是一个通用指针:A null pointer to anything else. ( #define NULL

辨析nil,Nil,NULL,NSNull

辨析nil,Nil,NULL,NSNull 概念说明: nil:表示oc中指向对象的指针为空 Nil:表示oc中指向类的指针为空 NULL:指向其他类型指针为空,如一个c类型的内存指针 NSNull:是一个单利对象,在不允许对象指针为nil的集合中,表示空值的对象 若obj为nil: [obj message]将返回NO,而不是NSException 若obj为NSNull: [obj message]将抛出异常NSException 辨析nil,NULL,Nil nil和NULL从字面意思来理

iOS_nil、Nil、NULL、NSNull的区别

nil.Nil.NULL.NSNull的区别 nil:指向一个对象的空指针 Nil:指向一个类的空指针 NULL:指向其他类型(如:基本类型.C类型)的空指针 NSNull:通常表示集合中的空值 举例: NSURL *url = nil; Class class = Nil; int *pointerInt = NULL; NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NS

nil Nil NULL NSNull 之间的区别

nil -> Null-pointer to objective- c objectNIL -> Null-pointer to objective- c class  表示对类进行赋空值NULL: A null pointer to anything else,  is for C-style memory pointers. 用于对非对象指针赋空值,比如C指针看一下用法NSURL *url = nil:Class  class = Nil:int *pointerInt = NULL:ni

<转>ios nil、NULL和NSNull 的使用

nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例), 而NSNull则用于集合操作,虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; // 判断对象不为空 if (object) { } // 判断对象为空 if (object == nil) { } // 数组初始化,空值结束 N

nil / Nil / NULL / NSNull 的区别

NULL在C中被定义,但是C并不包括nil.Nil和NSNull,这三者属于Objective-C(下称OC)部分. NULL是什么? int *a = NULL; A null pointer to anything else, is for C-style memory pointers. 它是C类型的一个指针变量,确切地说是一个空指针,不指向任何地方,在内存上它的值被设置为0.比如说int *pointer = NULL,指针变量pointer在内存里的值为0,不指向任何地方. 本质:空指

nil,Nil,NULL和NSNull理解(ios)

nil nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象. 例如: ? NSString *someString = nil; NSURL *someURL = nil; id someObject = nil; if (anotherObject == nil) // do something 定义: ? // objc.h #ifndef nil # if __has_feature(cxx_nullptr) #   def