美文网首页OC学习iOS Developer程序员
MRC模式下的内存管理机制

MRC模式下的内存管理机制

作者: Calvin_Shen | 来源:发表于2016-11-09 16:11 被阅读31次

OC的内存管理机制是什么?
答:内存管理的机制:

每个对象都有自己的引用计数器

在MRC内存管理模式下,引用计数器计算机是无法自动操作的。

当向对象发送alloc、copy、new消息的时候,该对象引用计数器会自动设置为1。

向对象发送[对象   retainCount]获得该对象引用计数器的值。

当不在使用对象的时候,会发送release消息,通知引用计数器”减“1.

当一个对象的引用计数器的值为0时,”系统“会自动销毁该对象,并回收该内存空间。

当对象销毁的时候,会自动发送dealloc消息。

声明式属性中是如何解决内存问题的?

答:

默认情况下声明式属性,并没有解决内存问题

如果需要解决内存问题,需要加上(retain)

-(void)setBook:(Book*)book

{

      if(nil ==_book)

     {

            _book =book;

            [_book retain];

      }else{

           [_book release];

           _book = book;

           [_book retain];

      }

}

-(void) dealloc{

          [_book  release];

          [super  dealloc];

}

@property (retain) Book* book;

声明式属性解决的只有setter问题,加1操作问题

dealloc中减1操作依然需要自己做

如果一个对象中的声明式属性是对象类型,加上retain

当一个对象销毁的时候,应该将它拥有的属性对象全部release(重写dealloc方法)

getter方法和工厂方法中的内存问题是如何解决的?

答:自动释放池可以帮我们自动释放对象

+(id)EFstudent{

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

     return stu;

}

-(EFStudent*)student{

      return   [[_student  retain] autorelease];

内存的管理,是对堆内存的管理(申请和释放)通过引用计数器来管理,当引用计数器为0时,系统释放那片内存。MRC模式下,内存的管理要遵循谁申请,谁释放的原则,即谁把引用计数器加1,谁负责减1,内存管理不当的后果有,程序崩溃(使用释放的对象)和内存泄露。

相关文章

  • iOS面试题-第一页

    1.简述OC中内存管理机制. 答:内存管理机制:使用引用计数管理,分为ARC和MRC,MRC需要程序员自己管理内存...

  • iOS面试 | 基础知识 | <1>

    1.简述OC中内存管理机制 答:内存管理机制:使用引用计数管理,分为ARC和MRC,MRC需要程序员自己管理内存,...

  • MRC模式下的内存管理机制

    OC的内存管理机制是什么?答:内存管理的机制: 每个对象都有自己的引用计数器 在MRC内存管理模式下,引用计数器计...

  • 面试题

    一。送分题 1.冒泡排序 二。拓展题 1.内存管理 侧重点是mrc下的内存管理机制 MRC,即Manua...

  • iOS的内功:内存管理机制

    1.Objective-C的内存管理机制 OC的内存管理机制有三种,分别是ARC(自动内存管理),MRC(手动内存...

  • OC内存管理

    MRC与ARC Objective-C中提供了两种内存管理机制:MRC(MannulReference Count...

  • Objective-C 之 MRC和ARC

    Objective-c中提供了两种内存管理机制:MRC和ARC MRC(MannulReference Count...

  • iOS面试宝典之——objective-c语法秘籍

    1. ARC和MRC Objective-c中提供了两种内存管理机制MRC(MannulReference Cou...

  • iOS中的property属性

    MRC与ARC 谈property属性之前需要引入OC的两种内存管理机制MRC:全称Manual Referenc...

  • IOS内存管理

    内存概述 内存是用来存啥的? 内存布局 哈希表 垃圾回收(GC) IOS内存管理机制 MRC & ARC T...

网友评论

    本文标题:MRC模式下的内存管理机制

    本文链接:https://www.haomeiwen.com/subject/slqtpttx.html