您的位置:首页 > 其它

92,内存管理(四)

2015-12-14 18:38 316 查看
// 多个对象内存管理

#import <Foundation/Foundation.h>

@interface Room : NSObject

{

int _no;

}

@property int no;

@end

@implementation Room

- (void)dealloc

{

NSLog(@"function = %s,no = %i",__func__,_no);

[super dealloc];

}

@end

@interface Person :
NSObject

{

Room *_room;

}

-(void)setRoom:(Room *)room;

@end

@implementation Person

-(void)setRoom:(Room *)room{

if(_room != room){

[_room release];

[room retain];

_room = room;

}

}

- (void)dealloc

{

[_room release];

NSLog(@"function = %s",__func__);

[super dealloc];

}

@end

int main(int argc,const
char * argv[]) {

@autoreleasepool {

Person *person = [[Personalloc]
init];

Room *room = [[Roomalloc]init];

room.no =
888;

person.room = room;

[room release];

[person release];

}

return 0;

}

//2015-12-14 18:36:45.544 4,多对象内存管理[3171:274415] function = -[Room dealloc],no = 888

//2015-12-14 18:36:45.546 4,多对象内存管理[3171:274415] function = -[Person dealloc]

//Program ended with exit code: 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: