[Objective-C]OC中的Dealloc方法详解
来源:互联网 发布:电影推荐算法数据集 编辑:程序博客网 时间:2024/04/25 17:55
今天来学习一下Dealloc方法的使用。
它的作用是,当对象的引用计数为0,系统会自动调用dealloc方法,回收内存。它的一般写法:
1:-(void)dealloc{
[super dealloc];}
2:-(void)dealloc{NSLog(@"laptop dead"); [_cpu release]; [super dealloc];}(一):为什么需要调用父类的dealloc方法?
子类的某些对象实例是继承自父类的。因此,我们需要调用父类的dealloc方法,来释放父类
拥有的这些对象。
(二):调用的顺序
一般说调用的顺序是,当子类的对象释放完时,然后再释放父类的所拥有的实例。这一点与调用初始化方法,
正好相反
下面使用一个例子来演示一下:
1:父类Vehicle.h
#import <Foundation/Foundation.h>@interface Vehicle : NSObject{ @private NSString *_name;}-(id)initWithName:(NSString *)name;@end2:父类Vehicle.m
#import "Vehicle.h"
@implementation Vehicle
-(id)initWithName:(NSString *)name{ self=[super init]; if(self){ _name=[name copy]; } return self;}-(void)dealloc{ NSLog(@"vehicle dead"); [_name release]; [super dealloc];}@end3:子类Car.h#import <Foundation/Foundation.h>#import "Vehicle.h"@class Engine;@interface Car : Vehicle{ Engine *_engine;}-(void)setEngine:(Engine *)engine;@end4:子类Car.m#import "Car.h"
@implementation Car
-(void)setEngine:(Engine *)engine{ if(_engine!=engine){ [_engine release]; _engine=[engine retain]; }}-(Engine *)engint{ return _engine;}-(void)dealloc{ NSLog(@"Car dead"); [_engine release]; [super dealloc];}@end5:测试main.m代码#import <Foundation/Foundation.h>#import "Engine.h"#import "Car.h"int main(int argc, const char * argv[]){ @autoreleasepool { NSString *name=[[NSString alloc]initWithFormat:@"audi"]; Car *car=[[Car alloc]initWithName:name]; [name release]; Engine *v6=[[Engine alloc]init]; [car setEngine:v6]; [v6 release]; //do something [car release]; } return 0;}运行截图
0 0
- 【Objective-C】OC中的Dealloc方法详解
- [Objective-C]OC中的Dealloc方法详解
- OC中的Dealloc方法详解
- Objective-C内存管理详解——dealloc方法
- Objective-C ——dealloc方法(析构方法)
- OC中的内存管理—重写dealloc方法
- [Objective-C] 03.OC中的继承和初始化方法
- Objective-C 基础知识之(十): OC中的排序方法
- Dealloc方法详解
- Objective-C中的方法
- 【Objective-C】OC中的权限控制
- 【Objective-C】06-OC对象中的self
- 黑马程序员------[Objective-C]OC中的block
- 初探Objective-c 4:OC中的Blocks
- OC(Objective-C)中的KVC
- Objective-C:dealloc、组合与聚合
- Swift中 deinit 取代 Objective-C dealloc
- 【Objective-C】OC中的数值的概念和常用方法(NSArray和NSMutableArray)
- .net获取系统当前时间
- 黑马程序员-----java1.5新特性
- Android开源项目 5篇
- 圣经故事第二集
- 第一周(项目一)——用枚举表示对称方式。
- [Objective-C]OC中的Dealloc方法详解
- 理性与直觉
- php 适配器模式
- FileStream之Seek、Read、Write的使用
- Hacking EV3系列之六:iOS使用Direct Command 控制EV3
- BOIS中功能小知识
- 小公司如何组建团队
- Vsftp设置为PASV mode(被动模式传送)
- maven项目出现红色感叹号