• 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.不要对你不拥有的对象发送“放弃”的消息

    只要有梦想,人生就有意义。。。
  • 相关阅读:
    2.6
    2.5
    2.4
    2.3
    2.2
    2.1
    条件查询
    项目办公自动化工具-文件夹照片批量插入word·
    suffer根据CGCS2000坐标利用散点图生成奥维坐标
    案例应用:给照片文件夹里照片按日期排序后引用表格的照片名称批量重命名(源码)
  • 原文地址:https://www.cnblogs.com/jiafuyang/p/4815919.html
Copyright © 2020-2023  润新知