- nil和C语言的NULL相同,在objc/objc.h中定义。nil表示Objective-C对象的值为空。在C语言中,指针的控制用NULL表示。在Objective-C中,nil对象调用任何方法表示什么也不执行,也不会崩溃。
- Nil:那么对于我们Objective-C开发来说,Nil也就代表((void *)0)。但是它是用于代表空类的。比如:Class myClass = Nil;
3.NULL:在C语言中,NULL是无类型的,只是一个宏,它代表空。这就是在C/C++中的空指针。对于我们Objective-C开发来说,NULL就表示((void *)0)。 - NSNull:NSNull是继承于NSObject的类型。它是很特殊的类,它表示是空,什么也不存储,但是它却是对象,只是一个占位对象。使用场景就不一样了,比如说服务器端口中让我们在值为空时,传空。NSDictionary *parameters = @{@"arg1":@"value1",@"arg2":arg2.isEmpty ? [NSNull null]:arg2};
- NULL、nil、Nil这三者对于Objective-C中值是一样的,都是((void *)0),那么为什么要区分呢?又与NSNull之间有什么区别:
NULL是宏,是对于C语言指针而使用的,表示空指针
nil是宏,是对于Objective-C中的对象而使用的,表示对象为空
Nil是宏,是对于Objective-C中的类而使用的,表示类指向空
NSNull是类类型,是用于表示空的占位对象,与JS或者服务器的null类似的含义
iOS nil、Nil、NULL和NSNull区别
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- nil nil 是 Objective-C 对象空值的意思, 对应于未知类型 id 或者其他 Objective-...
- nil、Nil、NULL、NSNull的区别 nil:指向一个对象的空指针 Nil:指向一个类的空指针 NU...
- 参考自这篇文章 C 语言中,用 0 作为不存在的原始值,而 NULL 作为指针 Objective-C , 在 C...
- 一.区别 nil:指向一个对象的空指针Nil:指向一个类的空指针NULL:指向其他类型(如:基本类型、C类型)的空...
- nil、Nil、NULL和NSNull区别 对于我们Objective-C开发来说,nil就代表((void *)...