property定义的setter函数类似是:
- (void) setX:(TypeOfX*)newX;
{
if(newX != memberVariableThatHoldsX){
[memberVariableThatHoldsX release];
memberVariableThatHoldsX = [newX copy];//or retain
}
}
getter函数类似是:
- (TypeOfX*) x;
{
return [[x retain] autorelease];
}
注意:getter并不是直接return,而是采用了autorelease,这样可以在oldvalue多保留一段时间,如下面:
NSString* oldName = [person name]; [person setName:@"Alice"]; NSLog(@"%@ has changed their name to Alice", oldName);
type:
assign 适用于标量,如int、float等
retain 保留
copy : copy mutable对象,保留旧值
ARC type:
strong : 相当于 retain
weak: 相当于 assign,不过当所指向对象引用为0时,自动置为nil