内存管理中经常遇到的问题:内存泄露,内存溢出。
在cocos2dx中用的是引用计数和自动释放池的技术,由于熟悉objective-c语言,所以对这两个概念不会很陌生。
一、引用计数
引用计数是自动内存管理的基础:在对象里增加一个引用计数,当外部引用增加时,计数器加1,当外部引用消失时,计数器减1 。
看一下CCObject源码:
cl...
分类:
其他好文 时间:
2014-08-19 16:35:14
阅读次数:
163
cocos2d-x 自己实现了一个数组CCArray ,下面我们来分析一下CCArray的源码 CCArray继承CCObject,所以,CCArray也具有引用计数功能和内存自动管理功能。 数组的源码如下: class CC_DLL CCArray : public CCObject{public...
分类:
其他好文 时间:
2014-08-18 23:34:03
阅读次数:
279
初学者在学习Objective-c的时候,很容易在内存管理这一部分陷入混乱状态,很大一部分原因是没有弄清楚引用计数的原理,搞不明白对象的引用数量,这样就当然无法彻底释放对象的内存了。本文分享了自己在理解引用计数时的分析过程,结合相关图形,希望能让大家深刻理解对象引用计数的原理。
分类:
其他好文 时间:
2014-08-18 23:32:23
阅读次数:
331
属性与内存管理(属性与内存管理都是相互关联的)第一部分一,属性:属性是OC2.0之后出来的新语法,用来代替setter和getter方法,使用属性可以快速创建setter以及getter方法的声明,setter和getter方法的实现,另外添加了对实例变量操作的安全处理(其安全是通过内存管理实现的)setter方..
分类:
其他好文 时间:
2014-08-18 09:20:57
阅读次数:
385
四,关于语义特性copy和与alloc对应的dealloc以及初始化操作和便利构造器的补充1,语义特性copy如果想对一个对象进行copy操作,对象的类必须服从一个NSCopying协议,并且实现协议中的方法copyWithZone:,方法为(仍以Person类为例):-(id)copyWithZone:(NSZone*)zone{NSString*newSex=..
分类:
其他好文 时间:
2014-08-18 09:20:44
阅读次数:
238
ARC在OC里面个人感觉又是一个高大上的牛词,在前面Objective-C中的内存管理部分提到了ARC内存管理机制,ARC是Automatic Reference Counting---自动引用计数。有自动引用计数,那么就得有手动引用计数MRC(Mannul Reference Counti...
分类:
其他好文 时间:
2014-08-18 08:02:23
阅读次数:
227
//定义一个bigArr数组,
NSMutableArray *bigArr = [[NSMutableArray
alloc]
init]; //引用计数0 - 1
//此时只是定义了一个smallArr 并没有开辟空间,所以引用计数不加一
NSMutableArray *smallArr =
nil;
...
分类:
其他好文 时间:
2014-08-15 09:31:57
阅读次数:
407
垃圾回收 垃圾回收的三个问题: 哪些内存需要回收? 什么时候回收? 如何回收?1.哪些对象需要回收? 判断对象是否存活的办法: 引用计数算法:给对象中添加一个引用计数器,有一个地方引用就+1,引用失效就-1.只要计数器为0则对象已死。 优点:简单易实现; ...
分类:
其他好文 时间:
2014-08-15 01:19:16
阅读次数:
218
1,从终端执行代码。-fobj 意思是编译OC语言。-arc 使用自动引用计数。-framework 链接到Foundation框架。-o 指定执行文件,文件会被创建。clang -fobjc-arc -framework Foundation main.m -o mappp别忘了加arc。编译的m...
分类:
其他好文 时间:
2014-08-14 23:11:06
阅读次数:
154
内存管理任何继承了NSObject的对象,都需要进行垃圾回收,对基本数据类型无效(int float double 指针等) 原理每个对象内部都保存了一个与之相关联的整数,称为引用计数器,当使用alloc、new或者copy创建一个对象时,对象的引用计数器被设置为1给对象发送一条retain...
分类:
其他好文 时间:
2014-08-14 16:29:58
阅读次数:
193