• 内存管理池


    1、如果想要调用release,必须开启ARC

    2、[实例对象 autorelease] 这个方法就是吧实例对象放到自动释放池中。(内存报警或者程序结束时自动释放)

    3、@autoreleasepool  {} 自动释放池。

                               自动内存管理/ARC(Automatic Reference Counting)

    1、自动内存管理

    编译器自动的添加完成了内存管理的引用计数代码。(苹果公司支持用的)

    2、ARC使用原则

    3、ARC/MRC混编

                                  ARC原则

    1、代码中不能使用retain,release,autorelease

    2、不重载dealloc(可以重写覆盖,不能调用)(如果是释放对象内存以外的处理,是可以重载该函数的,但是不能调用)

    3、不能使用NSAllocateObject,NSDeallocateObject

    4、不能再C结构体中使用对象指针

    5、id与void*间的如果cast时需要用特定的方法

    6、不能使用NSAutoReleasePool、而需要@autoreleasepool块

    7、不能使用”new“开始的属性名称(如果使用会有下面的编译错误)

                                    ARC和MRC(手动内存管理)混编

                                      MRC口诀

    1、谁创建,谁释放,如果你通过alloc new copy来创建一个对象,那么你必须调用release或者这

    autorrelease。换句话说,,不是你创建的,你就不用去释放。

    例如你在函数中alloc生成了一个对象,且这个对象只再这个函数中被使用,那么你必须在这个函数

    中调用release或者autorelease,如果你在一个class的某个方法中调用release,如果调用了autorelease

    那么再dealloc方法中声明都不需要做

    2、除了alloc、new、copy之外的方法创建的对象都被声明了autorelease。

    3、谁retain,谁release。只要你调用了retain,无论这个对象是如何生成的,你都要调用release

  • 相关阅读:
    POJ 2017 No Brainer(超级水题)
    POJ 2017 No Brainer(超级水题)
    Poj1207 The 3n + 1 problem(水题(数据)+陷阱)
    Poj1207 The 3n + 1 problem(水题(数据)+陷阱)
    Poj1159 Palindrome(动态规划DP求最大公共子序列LCS)
    Poj1159 Palindrome(动态规划DP求最大公共子序列LCS)
    Poj1050_To the Max(二维数组最大字段和)
    Poj1050_To the Max(二维数组最大字段和)
    Poj 2602 Superlong sums(大数相加)
    Poj 2602 Superlong sums(大数相加)
  • 原文地址:https://www.cnblogs.com/naizui/p/5043432.html
Copyright © 2020-2023  润新知