美文网首页
内存管理知识点总结

内存管理知识点总结

作者: 然哥哥 | 来源:发表于2016-04-16 19:33 被阅读66次

1 内存管理对象

值类型和引用类型

值类型:比如 int float struct 等基本数据类型  苹果内部自己管理。原因是内存都放在栈上面,是一块连续的存储地。遵循先进后出的原则。

引用类型:是继承NSObject类的所有OC对象。内存需要自己管理。(事故重发地),原因是内存放在堆上面,彼此之间有内存空隙,不是连续的。如果不管理收回,容易引起内存泄漏或者野指针的问题。

堆内存和栈内存之间的特点

堆内存空间大,不连续

栈内存空间小,连续,数量过大影响性能

2 内存管理方式

MRC 和 ARC

MRC:手工引用计数,所有对象都需要手动的 retain release 遵守谁创建谁回收。当retaincount为0,必须回收。不然内存泄漏。继续释放,就会野指针。

ARC:自动引用计数 系统会自动的释放对象,不需要release。

内存有关的修饰符

strong : 强引用 ,ARC中使用 ,与MRC中retain类似

weak  : 弱引用 ,ARC使用 ,如果对象释放了,指向nil,避免野指针,比assign好一点。

assign : 弱引用 基本上应用于基本数据类型

retain : 持有类型,retain count + 1

copy  : 拷贝特性,对象拷贝

nonatomic : 非原子特性,多线程访问,线程不安全

atomic : 原子特性,多线程安全,

readwrite : 读写,getter setter方法

readonly :  只读  生成getter  不生成setter方法

3 MRC和ARC的混编

ARC中使用MRC的文件,MRC文件添加编译选项-fno-objc-arc

相反                                                      添加-fobjc-arc

文/SuperDKeng(简书作者)

原文链接:http://www.jianshu.com/p/d0daa511811c

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

相关文章

  • 内存管理

    内存管理知识点总结 1 内存管理对象 值类型和引用类型 ** 值类型:** 比如 int float struc...

  • Linux内存知识点简单总结

    写在开头:本文为Linux内存相关知识点简单总结。 1. 虚拟地址 Linux采用虚拟内存管理技术,利用虚拟内存技...

  • iOS课程笔记大全(1)

    (复习) 内存管理:手动内存管理\ARC,内存管理是面试必问的知识点2.Category、Protocol、Blo...

  • iOS经典面试题总结--内存管理

    iOS经典面试题总结--内存管理 iOS经典面试题总结--内存管理

  • 内存管理知识点总结

    1 内存管理对象 值类型和引用类型 值类型:比如 int float struct 等基本数据类型 苹果内部自己管...

  • 内存管理解析

    前言 今天我们大致分析下内存管理相关的底层原理等知识点,分为包括内存布局和内存管理方案两大块,其中内存管理方案会重...

  • iOS知识体系总结-内存相关

    注意:更新内容会同步到GitHub iOSWiki-知识体系总结 总结-内存相关 iOS知识点/内存相关 #iOS...

  • iOS 内存管理

    前言 本篇是看唐巧写的「iOS开发进阶」书籍的「理解内存管理」知识点汇总笔记总结 Objective-C 和 Sw...

  • 12.Objective-C之集合对象的内存管理

    1.前言 1.集合对象的内存管理 2.集合对象内存管理总结:

  • Swift基础语法-自动引用计数, 内存管理

    知识点 工作机制 循环引用 1. 工作机制 Swift内存管理和OC一样: 管理引用类型的内存, 不会管理值类型,...

网友评论

      本文标题:内存管理知识点总结

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