美文网首页
nil,Nil,NULL,NSNull

nil,Nil,NULL,NSNull

作者: ricefun | 来源:发表于2017-08-09 17:48 被阅读8次

nil: OC中对象为空,指向不存在的对象指针

id someObj = nil;

Nil:OC中类为空,指向0的类指针

Class someClass = Nil;

NULL:C指针为空,在指针环境中相当于0

char *str = NULL;

NSNull
下面是 NSNull的头文件

@interface NSNull : NSObject <NSCopying, NSSecureCoding>  
+ (NSNull *)null;  
@end

可以看到一个Objective-C类,它表示的是空值,即什么都不存。只有一个+ (NSNull *)null; 单例方法,该类通常用于在集合对象中保存一个空的占位对象。

 NSArray *arr = [NSArray arrayWithObjects:<#(nonnull id), ...#>, nil];
//这是个NSArray 对象声明方法 我们可以看到后面有个 nil,这个nil就代表数组对象截止为止

NSArray *arr = [NSArray arrayWithObjects:@"apple",@"pear",nil,@"watermelon"];
//这里的watermelon就不算是arr中的数据,会被抛弃

//使用NSNull  
NSArray *arr1 = [NSArray arrayWithObjects:@"apple",@"pear",[NSNull null],@"watermelon"];  这种写法程序会崩溃
NSArray *arr2 = [NSArray arrayWithObjects:@"apple",@"pear",[NSNull null],@"watermelon",nil];这种不会,记得加末尾nil
//这里的watermelon就还存在,相当于占位

打印下上面的arr 和 arr2 :
arr1:(
apple,
pear
)
arr2:(
apple,
pear,
"<null>",
watermelon
)

总结


image.png

相关文章

  • NULL、nil、Nil 和NSNULL

    转:nil、Nil、NULL和NSNull区别NULL、nil、Nil这三者对于Objective-C中值是一样的...

  • IOS 处理空字符串

    一、区别: nil、Nil、NULL和[NSNull null]的区别 1.nil 当一个对象置为nil时,这个对...

  • Objective-C nil / Nil / NULL / N

    Objective-C nil / Nil / NULL / NSNull 和 BOOL / bool / Boo...

  • iOS nil、NULL、Nil 、NSNull的区别

    nil、Nil、NULL、NSNull的区别 nil:指向一个对象的空指针 Nil:指向一个类的空指针 NULL:...

  • nil、Nil、NULL、NSNULL

    nil、Nil、NULL、NSNull的区别 nil:是对objective c id 对象赋空值Nil:表示对类...

  • nil Nil NULL NSNull

    nil Nil NULL NSNull NULL是宏,是对于C语言指针使用的,表示空指针 nil是宏,是对于...

  • ios中的空值

    nil、Nil、NULL、NSNull的区别nil:指向一个对象的空指针Nil:指向一个类的空指针NULL:指向其...

  • nil、Nil、NSNull、NULL

    nil 表示空对象,每一个对象的引用计数为0时,系统会将这块内存释放掉,这时这个对象就为nil对于这种空对象所有r...

  • nil Nil NULL NSNull

    nil:指向oc中对象的空指针(对象),nil是一个指向不存在对象的指针 Nil:指向oc中类的空指针 NULL:...

  • nil/Nil/NULL/NSNull

    NULL 表示C指针为空 nil 表示指向Objective-C中对象的指针为空 Nil 表示Objective-...

网友评论

      本文标题:nil,Nil,NULL,NSNull

      本文链接:https://www.haomeiwen.com/subject/jdeqrxtx.html