今天看到一篇不错的文章关于OC内存管理的,转载一下与你共享 概述我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高 ...
分类:
其他好文 时间:
2016-07-01 20:03:16
阅读次数:
140
一.MRC中@property关键字 1.assign,retain,copy 这几个关键字用语setter方法的内存管理 assign:一般用于非oc对象,直接自信赋值操作 retain:一般用于oc对象,那么将retain新值,release旧值 copy:将release旧值,copy新值 一 ...
分类:
其他好文 时间:
2016-06-30 21:39:28
阅读次数:
104
本文围绕内存管理的几种方法展开叙述。 1.内存管理是什么? 内存管理,就是对内存资源进行优化。 2.内存管理的三种方法? Objective-C的内存管理主要有三种方式ARC(自动内存计数)、MRC(手动内存计数)、内存池。 3.MRC是什么?管理原则是什么?存在的问题? MRC,全称MannulR ...
分类:
移动开发 时间:
2016-06-29 08:53:13
阅读次数:
205
一.MRC模式下set和get方法 首先我们创建一个Dog类 Dog.h: Dog.m: 再创建一饿Person类 Person.h: Person.m: 在main函数中我们创建两个dog,并且创建person person set一个dog 此时,set方法完之后dog.retainCount值 ...
分类:
其他好文 时间:
2016-06-28 18:18:12
阅读次数:
159
一.MRC 和 ARC 1.mrc模式下声明一个Dog对象 析构函数 二。mrc手动内存管理模式下get和set方法 ...
分类:
其他好文 时间:
2016-06-25 23:08:49
阅读次数:
139
1.栈放局部变量(代码结束就释放,系统自动回收)堆放对象(动态分配) 2.每个对象里分配4个字节的存储空间放 引用计数器 当引用计数器值为0时对象占用的内存自动被回收自动回收,引用计数器的初始值是1. 3.retain 引用计数器+1 release引用计数器-1 4.可以给对象发送(调用)reta ...
分类:
移动开发 时间:
2016-06-20 17:13:42
阅读次数:
212
OC内存管理 一、基本原理 (一)为什么要进行内存管理。 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。 管理范围:任何继承NSObject的对象,对 ...
分类:
其他好文 时间:
2016-06-20 14:11:35
阅读次数:
207
1\__block可以在ARC和MRC下使用,既可以修饰对象,也可以修饰基本数据类型; 2\__weak只能在ARC下使用,只能修饰对象,不能修饰基本数据类型. 3\当block内部需要修改外部参数时,需要用__block来修饰外部参数,当block内部需要用到self时,要用__weak来修饰se ...
分类:
其他好文 时间:
2016-06-19 21:11:18
阅读次数:
140
这个比较老了,是mrc 里面的 此例以模仿Apple官方文档的单例写出来的。但是一直有一个非常不明白的地方,就是alloc与allocWithZone:的重载中,为什么要return [[self currentEnvironment] retain];,而不是return [self curren ...
分类:
其他好文 时间:
2016-06-16 17:54:29
阅读次数:
121
1.原理 1.1block类型 a.全局bock块 贯彻整个程序 b.栈块 存在于栈内存中,作用域中使用 c.堆块 自行管理其内存 1.2定义 类函数,闭包 注*:1.block捕获块中出现的外部变量 2.栈块copy之后会形成堆块 3.__weak(ARC)或__block(MRC)来避免循环引用 ...
分类:
其他好文 时间:
2016-06-15 16:02:28
阅读次数:
188