@synthesize關鍵字和@property關鍵字一樣,都是編譯器特性,讓Xcode可以自動生成getter和setter的聲明和實作
(一)@property 關鍵字
@property 關鍵字可以自動生成某個成員變量的setter和getter方法的聲明
文法
@property NSString *str;
編譯器遇到這一行,則自動擴充成下面兩句:
- (void)setStr:(NSString *)str;
- (NSString *)str;
(二)@synthesize 關鍵字
@synthesize 關鍵字幫助生成成員變量的setter和getter方法的實作
文法
@synthesize str;
相當于下面的代碼:
- (void)setStr:(NSString *)str
{
_str = str;
}
<span style="font-size:18px;">
- (NSString *)str
{
return str;</span>
<span style="font-size:18px;"> }</span>
(三)@dynamic
@dynamic 關鍵字,告訴編譯器,不自動生成setter和getter方法,避免編譯期間産生警告,然後有開發人員自己實作存取方法,或者存取方法在運作時動态建立綁定