-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在一个class中创建和使用property。
声明一个成员变量。
ClassB *objB;
声明property,加上retain参数。
@property (retain) ClassB* objB;
定义property
@synthesize objB;
除了dealloc方法以外,始终用.操作符的方式来调用property。
self.objB 或者objA.objB
在dealloc方法中release这个成员变量
[objB release];
示例代码如下
ClassA : NSObject
{
ClassB* objB;
}
@property (retain) ClassB* objB;
@implementation ClassA
@synthesize objB;
-(void) dealloc
{
[objB release];
[super dealloc];
}
给这个property赋值时,有手动release和autorelease两种方式。
void funcNoAutorelease()
{
ClassB *objB1 = [[ClassB alloc]init];
ClassA *objA = [[ClassA alloc]init];
objA.objB = objB1;
[objB1 release];
[objA release];
}
void funcAutorelease()
{
ClassB *objB1 = [[[ClassB alloc]init] autorelease];
ClassA *objA = [[[ClassA alloc]init] autorelease];
objA.objB = objB1;
}