iphone objective-c内存管理
2012-03-26 12:41
176 查看
1:retain返回一个id类型的值,通过这种方式,可以嵌套执行带有其他消息带有参数的保留调用,增加对象的保留计数器值,并要求对象执行某种操作,例如:[[car retain] setTire:tire atIndex:2];
2:对象的所有权: 拥有对象的实体需要对该对象进行清理。
2.1 一个实体拥有一个对象。所有权是实体。
2.2 一个对象拥有多个对象。所有权是一个对象。
2.3 如果一个函数创建了一个对象 ,则所有权是一个函数。
有以上的所有权主要是确保对象不再被使用时,能够及时的接收到release信息,从而被释放掉。
如果有一个函数创建了一个对象(次对象),并且这个对象(主对象)被次对象拥有,在主对象对次对象进行保留。在函数中对(次对象)进行释放。当主对象不需要使用次对象时,再释放掉。详见Objective-c,第9章133page。
正确的设置get和set的代码,如图:
2:对象的所有权: 拥有对象的实体需要对该对象进行清理。
2.1 一个实体拥有一个对象。所有权是实体。
2.2 一个对象拥有多个对象。所有权是一个对象。
2.3 如果一个函数创建了一个对象 ,则所有权是一个函数。
有以上的所有权主要是确保对象不再被使用时,能够及时的接收到release信息,从而被释放掉。
如果有一个函数创建了一个对象(次对象),并且这个对象(主对象)被次对象拥有,在主对象对次对象进行保留。在函数中对(次对象)进行释放。当主对象不需要使用次对象时,再释放掉。详见Objective-c,第9章133page。
正确的设置get和set的代码,如图:
相关文章推荐
- iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理
- 【转】iPhone/Mac Objective-C内存管理教程和原理剖析(二)口诀与范式
- iPhone/Mac Objective-C内存管理教程和原理剖析(二)口诀与范式
- iPhone/Mac Objective-C内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现
- iPhone/Mac Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool
- iPhone/Mac Objective-C内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理
- iPhone/Mac Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool
- iPhone/Mac Objective-C 内存管理教程和原理剖析 [转]
- iPhone/Mac Objective-C 内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理
- iPhone/Mac Objective-C内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析
- [转]iPhone/Mac Objective-C内存管理教程和原理剖析
- iPhone/Mac Objective-C内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现
- iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理