美文网首页
object-c 进阶一 【内存管理1】

object-c 进阶一 【内存管理1】

作者: vikin_ | 来源:发表于2016-04-02 23:47 被阅读36次

OC的内存管理有两种机制:
1、MRC 手动管理

2、ARC 自动管理

oc采用了类似于c、c++的内存机制,但是相对于他们先进一些;

oc中的所有对象都继承与NSObject,当创建一个对象的时候,对象指向一个内存地址,当我们把这个对象赋给另一个对象的时候,这时就产生了一次copy,也就是oc中的retain操作,两个对象同时指向一个内存地址,但是在oc中存在一个refrence count的计数器,当产生copy操作的是,refrence count会自动+1,比如我们刚刚将一个对象赋给另一个对象,这时内存空间中的refrence count的长度就是2,说明有两个对象指向了这个内存空间;

当我们要释放一个对象所占用的内存空间的时候,我们执行release操作的是,内存空间中的refrence count就会自动-1,也就是将对象指向内存空间的这个指针delete了;

1、创建项目时,默认的管理方式为ARC(自动)

怎么更改内存管理方式?

点击项目->built settings->all->搜索ARC->将yes改为no

相关文章

  • object-c 进阶一 【内存管理1】

    OC的内存管理有两种机制:1、MRC 手动管理 2、ARC 自动管理 oc采用了类似于c、c++的内存机制,但是相...

  • 内存管理初探

    一、概览 1.什么是内存管理 内存管理是在程序运行时,分配内存空间的过程。在Object-C当中,内存管理可以被看...

  • object-c 进阶二 【内存管理2】

    1、对象怎么赋给另一个对象? 我们使用最常规的方法试一下: NSString *str = [[NSString ...

  • Swift引用计数管理一

    Swift源码之引用计数管理一 标识Object-C或者Swift的内存管理标志类typedef unsigned...

  • ios面试2

    62.谈谈Object-C的内存管理方式及过程? 答: 1).当你使用new,alloc和copy方法创建一个对象...

  • iOS面试题-第十四页

    62.谈谈Object-C的内存管理方式及过程? 答: 1).当你使用new,alloc和copy方法创建一个对象...

  • Swift中解决引用循环之Unowned 与 Weak的选择

    Swift的内存管理机制与Object-C一样,都是采用了自动内存管理 -- ARC。那么这样就不得不想到老生常谈...

  • iOS进阶——iOS(Objective-C)内存管理·二

    iOS进阶——iOS(Objective-C)内存管理·二

  • Object-C内存管理

    一、引用计数器和对象所有权的基本概念 1、引用计数器 每个对象都会有一个引用计数器,当引用计数器为0是,系统就会将...

  • object-C 内存管理

    程序内存使用情况: object-C可执行的程序是由(可执行)代码、初始化代码和未初始化的程序数据、链接信息、重定...

网友评论

      本文标题:object-c 进阶一 【内存管理1】

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