标签:objective-c ios 内存管理 循环引用
1 @class// Person.h @class Car @interface Person @property(noatomic, retain) Car* car; @end
// Person.m
#import "Person.h"
@implementation Person
- (void)dealloc
{
[_car release];
_car = nil;
[super dealloc];
}
@end// Car.h @class Person @interface Car @property(noatomic, retain) Person* person; @end
// Car.m
#import "Car.h"
@implementation Car
- (void)dealloc
{
[_person release];
[super dealloc];
}
@end// main.m
#import "Car.h"
#import "Person.h"
int main()
{
Person* person = [[Person alloc] init];// person 1
Car* car = [[Car alloc] init];// car 1
person.car = car;// car 2
car.person = person;// person 2
[car release];// car 1
[person release];// person 1
return 0;
}// Car.h @class Person @interface Car @property(noatomic, assign) Person* person; @end
// Car.m
#import "Car.h"
@implementation Car
- (void)dealloc
{
[super dealloc];
}
@end
// main.m
#import "Car.h"
#import "Person.h"
int main()
{
Person* person = [[Person alloc] init];// person 1
Car* car = [[Car alloc] init];// car 1
person.car = car;// car 2
car.person = person;// person 1
[car release];// car 1
[person release];// person 0,car 0
return 0;
}
标签:objective-c ios 内存管理 循环引用
原文地址:http://blog.csdn.net/xufeng0991/article/details/43273045