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