重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要为大家展示了“IOS中nil,NULL,NSNULL区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“IOS中nil,NULL,NSNULL区别有哪些”这篇文章吧。
10年积累的网站建设、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有福建免费网站建设让你可以放心的选择与我们合作。
IOS 基础之nil,NULL,NSNULL区别详解
① nil:一般赋值给空对象。
② NULL:NULL 是一个通用指针(泛型指针)。
一般赋值给 nil 之外的其他空值。如SEL等。
③ NSNULL:[NSNull null] 是一个对象,他用在不能使用 nil 的场合。
因为在 NSArray 和 NSDictionary 中 nil 有特殊的含义(表示列表结束),所以不能在集合中放入 nil 值。如要确实需要存储一个表示“什么都没有”的值,可以使用 NSNull 类。NSNull只有一个方法:
+ (NSNull *) null;
④ 当向 nil 发送消息时,返回 NO,不会有异常,程序将继续执行下去。
而向 NSNull 的对象发送消息时会收到异常。
实例:
nil 是对objective c id 对象赋空值
例如
NSString * string = [NSString stringWithFormat:@"test"]; string = nil;
对于objective c 集合类对象 比如数组对象,字典对象,当我们不需要再使用他们的时候,对他们release 的同时最好也把他们赋值为nil,这样确保安全性,下面一个简单的一个例子:如果不赋值nil,可能导致程序崩溃
NSArray * array = [NSArray arrayWithObjects:@"test",@"test1" ,nil]; [array release]; if (array) { //仅仅对数组release,并没有赋空值的话,在程序某个地方如果继续对数组操纵,程序直接崩溃 NSString * string = [array objectAtIndex:0]; NSLog(@"%@",string); }
编程的时候对集合类对象先赋值为nil,再将其release这样可以保证程序安全性,苹果官方例子中也看到过viewDidUnload把对象赋值nil,然后在dealloc方法中将他们release,
Nil: A null pointer to an Objective-C class.表示对类进行赋空值
NULL: A null pointer to anything else, is for C-style memory pointers. 用于对非对象指针赋空值,比如C指针
NSNull 对于像NSArray这样的类型,nil或NULL不能做为加到其中的Object,如果定义了一个NSArray,为其分配了内存,又想设置其中的内容为空,则可以用[NSNULL null】返回的对象来初始化NSArray中的内容
以上是“IOS中nil,NULL,NSNULL区别有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!