@PRoperty的作用是定義屬性,聲明getter,setter方法。(注意:屬性不是變量)
@synthesize的作用是實(shí)現(xiàn)屬性的,如getter,setter方法.
在聲明屬性的情況下如果重寫(xiě)setter,getter,方法,就需要把未識(shí)別的變量在@synthesize中定義,把屬性的存取方法作用于變量。如:
.h文件中
@property (nonatomic,assign)NSInteger age;@property (nonatomic,retain)NSString * name;@property (nonatomic,copy)NSString * bb;
.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è)變量。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注