关于release后retainCount还是1的问题
生活随笔
收集整理的這篇文章主要介紹了
关于release后retainCount还是1的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉自:http://www.cocoachina.com/bbs/read.php?tid=175523
realse之后再調用還能調用的的問題,我做了這么多年也是經常遇到,也曾經試圖尋找原因, 就像6樓說的,很多時候都會出現realse過后還能調用的現象。而且對象不是autorealse的。 我還遇到過奇葩的是,每次要等上好幾秒鐘再調用才會出現空指針異常。(代碼里絕對沒有手動多線程) 還有很多時候跟你測試的硬件環境還有關,可以說,ios的內存管理策略雖然一如既往的是一套,但是每個版本都有細微的變化, 使用中還是能感覺出來,只是沒有官方的說明,無法正確的解釋。不過隨著一些界面業務該用autorelease之后,這種現象越來越不關注了。 唯一的可能是,這塊內存還沒有被重寫,這個可能的確是有的,因為你不用一塊內存,不代表內容真的清除掉,只是一個指針的單純移除而已,更好運氣是剛好被重寫為0,這樣是空爺不會崩潰這個和iOS無關,幾乎所有的OS都有這個情況autorelease什么時候真正釋放,這個google一堆了,就不展開了 其實情況挺多的,你說的是一種,另外一種是,你的變量指針指向的地址,正好被 另一個對象用來存儲了,這樣,你release之后發現,對象實體還是存在的,有可能已經不是原來的實體了。 但是,再release一次,可能就會影響到其他的對象實體了?
總結
以上是生活随笔為你收集整理的关于release后retainCount还是1的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高级Java服务端工程师要求
- 下一篇: cas单点登录原理碎碎念