天天看點

iOS中@synthesize的使用

@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方法,避免編譯期間産生警告,然後有開發人員自己實作存取方法,或者存取方法在運作時動态建立綁定