zoukankan      html  css  js  c++  java
  • 75.iOS内存管理

    堆区和栈区

    1.栈区:由编译器自动分配释放,函数的参数值,局部变量等值

    2.堆区:一般由开发人员分配释放,若不释放,则可能会引起内存泄漏

        NSString *string = @"abcd";//常量string-栈

        NSInteger index = 0; //index->栈

        NSMutableString *mString = [[NSMutableString alloc]initWithString:@"abcd"];

        //mString->堆

    Ios内存管理

    Objective-C提供了两种种内存管理方式:manual reference counting(MRC,手动引用计数器),automatic reference counting(ARC,自动引用计数)。ARC作为苹果新提供的技术,苹果推荐开发者使用ARC技术来管理内存;

    引用计数器

    ObjC采用引用计数(reference counting)的技术来进行管理:

    每个对象都有一个关联的整数,称为引用计数器
    当代码需要使用该对象时,则将对象的引用计数加1
    当代码结束使用该对象时,则将对象的引用计数减1
    当引用计数的值变为0时,此时对象将被释放。
    与之对应的消息发送方法如下:

    当对象被创建(alloc、new或copy等方法)时,其引用计数初始值为1
    给对象发送retain消息,其引用计数加
    给对象发送release消息,其引用计数减1
    当对象引用计数归0时,ObjC給对象发送dealloc消息销毁对象

  • 相关阅读:
    帆软报表实现全选全不选的功能
    knowledge_others
    skills_kafka
    skills_operation
    problems_others
    skills_windows
    c语言标识符
    快速排序法
    字符串处理scanf("%d%*c",&n);
    Byte.parseByte(String s,int radix)的解释
  • 原文地址:https://www.cnblogs.com/qiangzheVSruozhe/p/10435865.html
Copyright © 2011-2022 走看看