• 内存管理


     
         a、alloc  retain  new   copy  会让计数器加1 ,release 会让计数器减1。
         b、dealloc 方法用于销毁对象,收回内存。其和 alloc 分配内存对应。dealloc方法不能被直接调用,而是由系统在销毁对象时调用。retain 和 release 对应。
         c、影响引用计数的方法: + alloc   -retain  -copy   -release    -autorelease
         d.自动释放池与自动管理不一样。
         e.dealloc不能直接调用,而是由系统在销毁对象时使用。
         f.当一个对象的引用计数器为0时,那么它将被销毁,内存被系统回收
         g. MRC与ARC选择需要ARC的文件双击,并在输入框中输入:-fobjc-arc,如果不要ARC则输入:-fno-objc-arc

     

    #import <Foundation/Foundation.h>

    #import "Student.h"

    int main(int argc, const char * argv[]) {

      

        Student *s=[[Studentalloc]init];

        [s retain];

        NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc] init];//创建一个自动释放池

        //如果想要给一个对象发送autorelease消息,必须将下面的代码写在创建自动释放池和销毁池之间

        [s autorelease];

        //只有当自动释放池release时,才会将池里面的对象进行一次release

        [pool release];

        NSLog(@"%zi",s.retainCount);

        [s retain];

        //自动释放池,当超出大括号之后,其包含的对象自动release,发送autorelease消息的代码需要放到大括号里

        @autoreleasepool{

            [s autorelease];

        }

        NSLog(@"%zi",s.retainCount);

        return 0;

    }

  • 相关阅读:
    基础004_V7-DSP Slice
    基础003_V7-Memory Resources
    基础001_Xilinx V7资源
    基础002_V7-CLB
    FIR调用DSP48E_05
    FIR仿真module_04
    FIR基本型仿真_03
    FIR定点提高精度的trick_02
    〖Android〗快速部署SSHD和Bash Shell(程序:DroidSSHD和BetterTerminalEmulatorPro)
    〖Android〗Nexus 7 flo (razor) 刷入Recovery/CM-11.0后卡在开机动画的解决方法
  • 原文地址:https://www.cnblogs.com/lcl15/p/4930849.html
Copyright © 2020-2023  润新知