• 关于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一次,可能就会影响到其他的对象实体了
  • 相关阅读:
    pycharm 2016.2注册码
    python selenium2
    webdriver.py--解说
    Sahi ---实现 Web 自动化测试
    性能测试
    看云-git类的书籍写作
    IntelliJ IDEA 对于generated source的处理
    各种常用的序列化性能的对比
    rpc框架--grpc-java
    grpc mvn protobuf:compile 过程
  • 原文地址:https://www.cnblogs.com/wangpei/p/3569174.html
Copyright © 2020-2023  润新知