zoukankan      html  css  js  c++  java
  • ios 开发 OC编程 内存管理

    //

    //  main.m

    //  oc _内存

    //

    //  Created by dllo on 15/11/5.

    //  Copyright (c) 2015 dllo. All rights reserved.

    //


    #import <Foundation/Foundation.h>

    #import "Student.h"

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

        //引用计数注意事项

        //1, 自己引起的加1操作一定要自己负责减1

        //2, 只有见到alloc,retain, copy等关键字才去加1

        //3, release是减1的意思,而非释放,当引用计数减为0的时候系统自动释放空间

        //4, autoreleaseMRC,在未来的某一的时机减1;

        //5,不要纠结NSString类型的空间的引用计数

        //6, collection 类型(数组,字典,集合)- 当对象加入时引用计数自动加1,移除的时候自动减1, collection销毁时,自动将所有的成员引用计数减1

        //7, 真正的释放空间是dealloc方法 ,当引用计数为0,系统自动调用,千万不可以自己调用,但是可以自己重写,0第一行必须调用父类的dealloc ([super dealloc])

          Student *stu = [[Student alloc]init];

         //查看引用计数

        NSLog(@"%ld", stu.retainCount);

        // stu release 后引用计数 还是1 原因

        //1当前计数是1,再减去1就是0,没必要再减1

        //标记释放不是立即释放

    //    [stu release];

    //    NSLog(@"%ld", stu.retainCount);

        

    //    数组,字典,集合都是Collection类型,系统自动计数.(释放的时候,所有计数减1);

        

        //便利构造器 return [p autorelease] 是最完美的解决方法

        

        //怎么更改ARCMRC,,点击main 上面的蓝色文件,选择 buliding setting ,搜索auto.选择ARC 或者MRC             x

        

        return 0;

    }


  • 相关阅读:
    使用 Python 编码和解码 JSON 对象
    搞定github下载加速
    git错误:fatal: Could not read from remote repository.解决
    webstorm安装配置
    node.js下载安装
    IDEA安装小配置
    JAVA软件安装
    关于升级一般软件的一些想法
    linux 的 逻辑卷管理
    记一次内核升级。
  • 原文地址:https://www.cnblogs.com/yuhaojishuboke/p/5043115.html
Copyright © 2011-2022 走看看