zoukankan      html  css  js  c++  java
  • ios 内存管理

    Objective-C提供了三种内存管理方式:manual retain-release(MRR,手动管理),automatic reference counting(ARC,自动引用计数),garbage collection(垃圾回收)。iOS不支持垃圾回收;ARC作为苹果新提供的技术,苹果推荐开发者使用ARC技术来管理内存;这篇笔记主要讲的是手动管理。

    内存管理的目的是:
    1.不要释放或者覆盖还在使用的内存,这会引起程序崩溃;
    2.释放不再使用的内存,防止内存泄露。iOS程序的内存资源是宝贵的。

    MRC手动管理内存也是基于引用计数的,只是需要开发者发消息给某块内存(或者说是对象)来改变这块内存的引用计数以实现内存管理(ARC技术则是编译器代替开发者完成相应的工作)。一块内存如果计数是零,也就是没有使用者(owner),那么objective-C的运行环境会自动回收这块内存。

    objective-C的内存管理遵守下面这个简单的策略:
    注:文档中把引用计数加1的操作称为“拥有”(own,或者take ownership of)某块对象/内存;把引用计数减1的操作称为放弃(relinquish)这块对象/内存。拥有对象时,你可以放心地读写或者返回对象;当对象被所有人放弃时,objective-C的运行环境会回收这个对象。
    1.你拥有你创建的对象
    也就是说创建的对象(使用alloc,new,copy或者mutalbeCopy等方法)的初始引用计数是1。
    2.给对象发送retain消息后,你拥有了这个对象
    3.当你不需要使用该对象时,发送release或者autorelease消息放弃这个对象
    4.不要对你不拥有的对象发送“放弃”的消息

    只要有梦想,人生就有意义。。。
  • 相关阅读:
    分享几个个人觉得挺漂亮的导航 Jquery
    C#程序打成 一键安装包InstallShield
    腾讯显IP的API
    C#综合揭秘——细说事务
    2012最新JQuery插件
    Flex各种用法及使用技巧一
    win7管理员账户的启用方法
    禁用win7休眠
    win7下移动文件夹
    win7下转移搜狗文件临时文件夹和IE临时文件夹的方法
  • 原文地址:https://www.cnblogs.com/jiafuyang/p/4815919.html
Copyright © 2011-2022 走看看