nil和NULL的区别
2015-09-19 19:25
309 查看
nil 是对objective c id 对象赋空值
例如
对于objective c 集合类对象 比如数组对象,字典对象,当我们不需要再使用他们的时候,对他们release 的同时最好也把他们赋值为nil,这样确保安全性,下面一个简单的一个例子:如果不赋值nil,可能导致程序崩溃
编程的时候对集合类对象先赋值为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中的内容
例如
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中的内容
相关文章推荐
- 关于java中if语句的见解
- bayes statistics
- git的初步了解
- WEB_PHP_PHP文件上传下载
- pyqt在控件上创建图片
- centos7 实战的一些总结
- hdu5455Fang Fang 水题
- 开源的推荐系统
- 【你又何必】
- 采用OSChina代码托管管理项目(一)
- Java面向对象 修饰符
- 隐马尔科夫模型—简介
- 解决android开发中eclipse不能自动提示
- Java基础知识强化37:StringBuffer类之StringBuffer的构造方法
- PHP预定义超全局数组 $_GET 原理分析
- An easy problem 2601 (数学题+公式变形)
- 关于执行文件路径的变量:$PATH
- hdu 5455 Fang Fang
- 客房收费系统数据库设计
- UILabel标签