您的当前位置:首页正文

ARC中delloc子类和父类的释放

2024-11-30 来源:个人技术集锦


//父类

#import "ClassA.h"



#import <Foundation/Foundation.h>


@interface ClassA : NSObject


@end



@implementation ClassA

-(void)dealloc

{

    NSLog(@"dealloc ClassA");

}

@end


//子类

#import "ClassA.h"


@interface ClassB : ClassA


@end



@implementation ClassB


//子类此处 实现和不实现delloc都是一样的 [只要子类释放 就是自动释放父类 ARC下不用显式去调用父类[super delloc] ]

-(void)dealloc

{

    NSLog(@"dealloc ClassB");

}


@end



//main方法内

ClassA* b = [[ClassB alloc] init];

b = nil;


//打印结果

dealloc ClassB

dealloc ClassA 


注意:如果子类中不实现delloc方法

//打印结果

dealloc ClassA



结论:

ARC下,虽然没有显式调用父类的[super dealloc],但结果仍然会调用,编译期间编译器会自动添加 [super dealloc]



显示全文