Objecitive-C中的nil
当我学习OC的时候,我总是忍不住在对比。Actionscript是如何实现,而oc又是如何实现。这不,碰到nil的时候我发现了很大的不同之处。做个笔记。在as中,如果将一个对象置为null,相当于空指针,那么后续对该对象的操作会报错。而在编码中,我们常常会判断if(obj == nul )来判断该对象是否存在,存在的话才可以进行后续操作。
而在oc中,nil就相当于c、c++中的NULL指针,一般释放对象后将对象置为nil非常重要,这样可以防止引用非法指针导致程序崩溃掉。
1
|
[obj
release]; //此时obj的引用计数为0
|
2
|
[obj
someMethod]; //程序崩溃
|
3
|
4
|
[obj
release];
|
5
|
obj
= nil;
|
6
|
[obj
someMethod]; //obj此时为nil,但不会崩溃
|
最后更新:2017-04-03 21:30:11
上一篇:
Mongo数据库 安装
下一篇:
政府数十万设备为何挡不住小黑客
应对Memcached缓存失效,导致高并发查询DB的几种思路
云栖大会上,马云欲花千亿建的“达摩院”是用来做什么的?
第3章 对象基础
J2EE中getParameter与getAttribute以及EL表达式${requestScope}和${param[]}
magento 1.4 -- 推荐插件 -- 产品页计算运费插件(Estimate Shipping on the Product Page)
搜索背后的奥秘——浅谈语义主题计算
编译、裁剪、安装、删除 Ubuntu内核和模块管理
VM中的Linux安装jdk和tomcat
java中文乱码解决之道(一)—–认识字符集
struts中采用注解配置Action