在非arc的工程中创建NSMutableArray属性的时候需要注意的是:[[NSMutableArrayalloc]initWithCapacity:2];
正常使用[NSMutableArrayarrayWithCapacity:2]; 会自动释放,需要retain。
分类:
其他好文 时间:
2014-05-16 05:38:00
阅读次数:
303
在一个有reurn 返回值的函数里 如果申请了一段内存的话(alloc 或者copy) 这个时候不能够release 只能够使用autorelease
在返回到那个被接受到的指针里,由它去进行释放!!
如果是self.obj(或者某些类对应的 SomeClass.obj)这种类型的,就需要把self.去掉(因为这样子的申请出来的内存引用计数会被retain+1了)
...
分类:
移动开发 时间:
2014-05-15 04:40:44
阅读次数:
369
参考文献:iOSARC完全指南提示本文中所说的"实例变量"即是"成员变量""局部变量"即是"本地变量"一、简介ARC是自iOS5之后增加的新特性完全消除了手动管理内存的烦琐编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处..
分类:
其他好文 时间:
2014-05-15 00:55:48
阅读次数:
348
读前小提示:对于深浅复制有一个清楚的了解,对于学习oc的朋友来说,至关重要。那么首先,我们要明白深浅复制是如何定义的呢。这里为了便于朋友们理解,定义如下。
浅 复制:在复制操作时,对于被复制的对象的每一层复制都是指针复制。深 复制:在复制操作时,对于被复制的对象至少有一层复制是对象复制。完全复制:在...
分类:
其他好文 时间:
2014-05-12 21:23:29
阅读次数:
415
oc没有java的垃圾回收机制,所以对象的内存释放很重要,基本数据类型,我们不用理会,编译器会处理;oc的每个对象内部都由一个计数器,用来记录当前有几个指针在指向该对象;当计数器为0时该对象会从内存中释放;相关方法和概念:1:retain:对象方法,调用该对象方法,计数器+1,有返回值,返回对象本身...
分类:
其他好文 时间:
2014-05-11 23:17:09
阅读次数:
299
涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了;当然@property依然强大,很好用; 1:内存管理相关参数:
*:retain: (如果是oc对象类型),生成的setter会自动release旧值,retain新值; *:assign:...
分类:
其他好文 时间:
2014-05-11 17:59:45
阅读次数:
306
一、 基本简介ARC是自iOS 5/Mac OS X
10.7之后增加的新特性,消除了原先手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切ARC
是编译器特性,而不是 iOS 运行时特性,...
分类:
其他好文 时间:
2014-05-09 15:28:11
阅读次数:
367
什么是assign,copy,retain之间的区别?assign:
简单赋值,不更改索引计数(Reference Counting)。copy:
建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1retain是指针拷贝,co...
分类:
其他好文 时间:
2014-05-09 00:08:47
阅读次数:
419
#import @interface Person : NSObject{ Book *
_book; int _age;}/* oc对象 1.@property能制动生成setter和getter方法
2.retain告诉编译器自动生成setter里的retain 3.atomic:低性能(默认情...
分类:
其他好文 时间:
2014-05-08 18:33:51
阅读次数:
303
/* 内存管理原则: 1.谁alloc,new或copy,谁就进行一次release
2.谁retain,谁release */#import @interface Person : NSObject { Car * _car; int
_age;}- (void)setCar:(Car *)car...
分类:
其他好文 时间:
2014-05-08 10:18:57
阅读次数:
284