OC 内存管理初级

来源:互联网 发布:网络表妹是什么意思 编辑:程序博客网 时间:2024/06/08 13:11
<span style="font-size:24px;">黄金法则:如果对一个对象进行了alloc retain copy之后,就拥有了该对象的所有权,就必须对它进行release或者autoreleasealloc   引用计数0 ->1retain  引用计数 立即 +1copy   release  引用计数 立即-1autorelease  配合 @autoreleasepool{  }使用retainCount  用来取当前对象的引用计数是oc中对引用计数操作的方法autorelease会将声明autorelease的对象放入离它最近的自动释放池中,当自动释放池销毁时,会向池中的每一个对象发送一个release消息.@autoreleasepool {        for (int i = 0 ; i < 1000; i++) {            @autoreleasepool {                Person *per = [[Person alloc]init];                [per autorelease];            }        }    }内部@autoreleasepool避免了内存的堆积问题. @autoreleasepool {        //指针变量(栈区) alloc(堆区) @"aa"常量区        NSString *per = [[NSString alloc]init];        [per retain];        [per retain];        per = @"aa"; //指向常量区        //下面操作的是常量区的内存空间        [per release];        [per release];        [per release];    }        //内存泄漏        //常量区的内存由系统管理在内存的管理过程中会出现 1.过度释放2.野指针问题3.内存泄露问题 1.//过度释放        //现象:当写完和内存引用计数-1有关的操作后,程序立即crash.        //原因:空间呗系统回收之后,不能再做和引用计数-1有关的操作,否则会立即crash        //解决方案:删除. 2.//野指针异常        //现象:可能会崩溃 也可能不会崩溃 ,写到某一行代码是突然崩溃(没有写任何和引用计数相关的代码)        //产生原因:该对象的空间已经被系统回收,不能再访问没有访问权的对象        //解决方案:空间被系统回收之后禁止访问</span>

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 眉粉受潮了结块怎么办 刚买的奶粉结块怎么办 袋装白糖成坨了怎么办 一袋子白糖硬了怎么办 粉饼上有一层油怎么办 葡萄后期氮肥施用过多怎么办 没洗的菜吃了怎么办 闻了汽油味头晕怎么办 碰到绿萝的汁液怎么办 吃了带农药水果怎么办 开槽模切一体机模切时开槽怎么办 柔版印刷走纸歪斜怎么办 美团外卖一天8单怎么办 单位显示器丢了怎么办员工赔 纸板板门起泡了怎么办 卖家要我开出质量问题证明怎么办 闲鱼买到的商品不符合描述怎么办 寄出去的东西碎了怎么办 闲鱼快递损坏了怎么办 寄快递东西坏了怎么办 快递邮寄东西坏了怎么办 快递被别人拆了怎么办 淘宝买的东西包装破损怎么办 寄血液被退回来怎么办 快递被安检扣了怎么办 淘宝原单退回运费怎么办 运输过程中包裹破损怎么办 天猫没收到货签收怎么办 收到的快递坏了怎么办 自寄的快递少了怎么办 邮的东西弄坏了怎么办 物流签收后发现货物损坏怎么办 发现客人损坏了酒店物品怎么办 东西坏了签收了怎么办 朋友圈贩卖三无产品你怎么办 付钱给微商没有保障怎么办 电镀锌钢带生锈怎么办 电机机油从空气滤芯里流出怎么办 把塑料皮套吃了怎么办 塑料框眼镜有点小了怎么办 出口纸箱打了钉怎么办