nil和null的区别
来源:互联网 发布:lds激光测距 知乎 编辑:程序博客网 时间:2024/06/04 20:36
在Objective-C里,nil对象被设计来跟NULL空指针关联的。他们的区别就是nil是一个对象,而NULL只是一个值。而且我们对于nil调用方法,不会产生crash或者抛出异常。 这个技术被framework通过多种不同的方式使用。最主要的就是我们现在在调用方法之前根本无须去检查这个对象是否是nil。假如我们调了nil对象的一个有返回值的方法,那么我们会得到一个nil返回值。我们可以通过nil对象让我们的dealloc函数实现看上去更帅一点:- (void) dealloc{self.caption = nil;self.photographer = nil;[super dealloc];}之所以可以这么做是因为我们给把nil对象设给了一个成员变量,setter就会retain nil对象(当然了这个时候nil对象啥事情也不会做)然后release旧的对象。这个方式来释放对象其实更好,因为这样做的话,成员变量连指向随机数据的机会都没有,而通过别的方式,出现指向随机数据的情形机会不可避免。注意到我们调用的self.VAR这样的语法,这表示我们正在用setter,而且不会引起任何内存问题。假如我们直接去设值的话,就会有内存溢出:
0 0
- nil, Nil, NULL和NSNull的区别
- IOS-nil,Nil和NULL的区别
- nil、Nil、NULL和NSNull的区别
- nil和null的区别
- nil和NULL的区别
- NULL和nil的区别
- nil和NULL 的区别
- iOS之nil, Nil, NULL,null和NSNull的区别
- null nil Nil 的区别
- null nil Nil 的区别
- nil,Nil,NULL的区别
- nil/Nil/NULL的区别
- nil null Nil 的区别
- nil,Nil,NULL的区别
- nil,Nil,NULL的区别
- nil Nil null @"" 关于nil和 null和NSNull的区别及相关问题||(null) <null> nil 问题
- Objective-c 中 nil, Nil, NULL和NSNull的区别
- Objective-c 中 nil, Nil, NULL和NSNull的区别
- CodeForces 462C Appleman and Toastman 贪心
- jvm扫盲
- Android Bitmap大量使用不产生OOM之“加载大图片资源优化”
- 虚拟化项目之运维实践 5
- 嵌入式linux开发——要掌握的资料汇总
- nil和null的区别
- poj1631 dp 最长上升子序列LIS
- request动态取值
- LeetCode:242 Valid Anagram Java
- uva 10158 War (并查集)
- iOS 关于登录与注册的问题
- Linux系统下I/O同步的问题
- 虚拟化项目之运维实践 6
- sourceIsight创建大量工程时的注意事项