IOS-内存管理

- (void)dealloc

{

    NSLog(@"租车行奉命回收车");

    //一个类的dealloc方法,需要调用 父类的dealloc

    //所有代码都要卸载 [super dealloc]之前

    //永远不要手动调用它;

    [super dealloc];

}

出现的问题1.内存泄漏 2.内存过渡释放

内存管理 手动管理(MRC    自动管理(ARC   --------垃圾回收是给MAC用的

引用计数  是指拥有这块内存的个数  有多少的指针指向该内存

alloc 0->1

retain +1的意思

copy(原来的不变 新开辟的内存和以前的一样  然后引用计数0->1  alloc差不多)

release是减少一个引用指向

autorelease 延迟释放

        7.0之后都是新建工程自动默认都是ARC

        allcombine中更改自动

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

        //打印当前对象的引用计数  使用-retainCount方法

        NSLog(@"当前的引用计数%lu",[stu retainCount]);

        [stu retain];//对当前对象的引用计数+1;这个指针怎么得到

        NSLog(@"当前的引用计数%lu",[stu retainCount]);

        [stu retain];//对当前对象的引用计数+1;这个指针怎么得到

        NSLog(@"当前的引用计数%lu",[stu retainCount]);

        [stu copy];

        [stu retain];//对当前对象的引用计数+1

        [stu release];//对当前对象的引用计数-1

        NSLog(@"当前的引用计数%lu",[stu retainCount]);

        [stu autorelease];//当前不-1 在未来某个地方引用计数-1

        NSLog(@"当前的引用计数%lu",[stu retainCount]);

----------------------------------

        1.对象内存的所有权的指针才能够release改变引用计数;

        alloc  retain  copy 都能使对象获得内存的所有权

        release autorelease都能使对象放弃内存的所有权

        2.有创建就有回收   有+1就有-1

        3.引用计数的概念

        4.在一个方法/类中,内存d引用计数要保持平衡。

        5.dealloc方法 在对象的引用计数为0时系统强制调用; 用于回收内存

        6.属性的内存管理  对象类型的属性,需要在dealloc中释放一次

//          7.自动释放池  负责释放池子范围内所有呗标记为autorelease的对象 @autoreleasepool{}

//          8.构造器的内存管理

//        在返回这个对象的时候,使用autorelease

//1.有创建就必须有释放 !

//! 2.⽤用引⽤用计数 标识 拥有对象有所有权的 拥有者(指针)的个数!

//! 3.使⽤用alloc retain copy 增加引⽤用计数 使⽤用release autorelease减少引⽤用计数!

//! 4.只有拥有对象所有权的拥有者 才能对对象使⽤用内存管理代码!

//! 5.在⼀一个类/⽅方法中,⼀一个对象的引⽤用计数必须保持平衡,+1就有-1!

//! 6.当⼀一个对象的引⽤用计数被减为0,系统会⾃自动调⽤用对象的dealloc⽅方法!

//! 7.属性的内存管理: 对象类型的属性,需要在dealloc⼿手动释放⼀一次!

//! 8.自动释放池: autoreleasepool的作⽤用机制:自动释放池负责管理所有在 池⼦子范围内被标 记为autorelease的对象, 并在 自动释放池 结束时对 池⼦子中所有的对象release⼀一次!

//! 9.构造器的内存管理: 因为构造器返回的对象需要被外界使⽤用,所以需要对它进⾏行延迟释 ,即对返回的对象标记autorelease!

//! 10.容器的内存管理 : 容器类 会对所有加入到自身中的对象 retain⼀一次,用来保持对这些 对象的所有权. 当这些对象被移除出容器时,容器会自动放弃对象的所有权,release⼀一次.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值