一、首先最基本的你得知道:
1.@property的作用是定義屬性,聲明getter,setter方法。(注意:屬性不是變量)
2.@synthesize的作用是實(shí)現(xiàn)屬性的,如getter酒贬,setter方法.
二、注意的問題:
在聲明屬性的情況下如果重寫setter,getter,方法亩鬼,就需要把未識(shí)別的變量在@synthesize中定義梢夯,把屬性的存取方法作用于變量。
三恳邀、例如:
1??:在點(diǎn)h文件中懦冰,
@property (nonatomic,assign)NSInteger age;
@property (nonatomic,retain)NSString * name;
@property (nonatomic,copy)NSString * bb;
2??:.m文件中
//如果不加以下三行,就報(bào)會(huì)找不到_age,_name,_bb變量的錯(cuò)誤@synthesize age = _age;
@synthesize name = _name;
@synthesize bb =_bb;
- (void)setName:(NSString *)name{? ? if (_name!=name) {? ? ? ? [_name release];? ? ? ? _name = [name retain];? ? }}
- (NSString *)name{? ??
return [[_name retain] autorelease];
}
- (void)setAge:(NSInteger)age{?
?? _age = age;
}
- (NSInteger)age{? ?
?return _age;
}
- (void)setBb:(NSString *)bb{??
? if (_bb!=bb) {? ? ??
? ? ? ? ? ? ? ?[_bb release];? ? ? ??
? ? ? ? ? ? ?_bb = [bb copy];? ?
?}}
- (NSString *)bb{??
? return [[_bb retain]autorelease];
}
三谣沸、總結(jié):
? ? ? 一定要分清屬性和變量的區(qū)別刷钢,不能混淆。@synthesize 聲明的屬性=變量乳附。意思是内地,將屬性的setter,getter方法,作用于這個(gè)變量赋除。