程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Objective-C特有語法:@property、@synthesize

Objective-C特有語法:@property、@synthesize

編輯:關於C語言

  08-Objective-C特有語法:@property、@synthesize   1.@property   使用在@interface中 用來自動生成setter(設置器)和getter(構造器)的聲明   用@property  int age;就可以代替一下這些代碼:  - (void)setAge:(int)age;   // setter - (int)age;                // getter                2.@synthesize   使用於@implementation中  用來自動生成setter(設置器)和getter(構造器)的實現  用@synthesize age = _age就可以代替下面這些代碼:   - (void)setAge:(int)age {     _age = age; } - (int)age {     return _age; }        如果成員變量_age不存在,就會自動生成一個@private私有的變量_age(因為_age聲明在@implementation中,故為私有的) 如果為@synthesize age; 此時為指明要去實現哪個age,如果.h文件中又聲明一個同名的age成員變量,就會去實現它的setter和getter,否則,在@implementation中自動生成一個age變量,再實現age的setter和getter方法 如果手動實現了setter方法,編譯器就會自動實現getter方法 同理,若手動實現了getter方法,編譯就會自動實現setter方法 若setter和getter都同時實現了,那麼編譯器就不會自動生成不存在的成員變量 3.Xcode4.4以後:特性   @property囊括了@synthesize的功能,即在@interface中聲明@propery int age; 編譯器就在.h文件中自動生成了setter和getter方法聲明和實現          默認情況下是去訪問下劃線_age的成員變量   此時,@proterty自動生成的成員變量默認就是@protect受保護的(因為在.h文件中聲明的成員變量,默認是@protect)  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved