zoukankan      html  css  js  c++  java
  • 关于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一次,可能就会影响到其他的对象实体了
  • 相关阅读:
    初识ES6
    初识NODE
    AJAX详解
    PHP 文件与目录操作函数总结
    PHP封装一个通用好用的文件上传处理类
    PHP基础之 错误处理 及 异常处理
    PHP基础OOP(二) 多态
    PHP基础之 重载 的实现方式
    CCS3的过渡、变换、动画以及响应式布局、弹性布局
    CSS之盒子模型(由浅到深的理解)
  • 原文地址:https://www.cnblogs.com/wangpei/p/3569174.html
Copyright © 2011-2022 走看看