@property裁替、@synthesize的理解

前言

主要是簡單介紹一下我對于@property的理解项玛,不代表官方理解,僅供參考弱判。

1.@property
  • @property由成員變量和成員方法構(gòu)成襟沮。
    成員變量:變量名前默認加上_ 的變量為該屬性的成員變量。
    成員方法:即為set 裕循、get方法

     @property (nonatomic,copy)NSString *name;//屬性
     //以下為@property屬性自動生成的變量及方法
     {
       NSString *_name;
     }
     //set方法
     -(void)setName:(NSString *)name{
         _name = name;
     }
     //get方法
     -(NSString *)name{
         return _name;
     }
    
  • 當給變量設置或取值時,會調(diào)用對應get净刮、set方法剥哑,這時可以在方法中加一些自己想要的操作。例如:

     @property (nonatomic,assign)NSInteger *age;//屬性
     //set方法
     -(void)setAge:(NSInteger *)age{
         _age = age + 10;
     }
     //get方法
     -(NSInteger *)age{
         if (age > 10) {
             return _age;
         }else{
             return 0;
         }
     }
    

注意:
調(diào)用set淹父、get的方法為:self.age;
使用成員變量的方法為:_age;

set方法里面是用_age去賦值株婴,而不是self.age,用self會導致循環(huán)調(diào)用set方法。

2.@synthesize

  • @property 聲明的變量和方法暑认,都由@synthesize去幫你加上方法實現(xiàn)困介。在Xcode4.5及以后的版本中,可以省略@synthesize蘸际。
  • 編譯器會默認幫你加上set座哩、get方法實現(xiàn),并且默認去訪問 "_XXX"這個成員變量粮彤,如果找不到這個成員變量根穷,則會自動生成這個私有的成員變量。

注意:
同時重寫用@propertyset和get方法會報錯:聲明的成員屬性,相當于自動生成了setter getter方法,重寫了set和get方法,與@property聲明的成員屬性就不是一個成員屬性了,是另外一個實例變量,而這個實例變量需要手動聲明

3.readonly 导坟、readwrite

  • readonly為只讀特性屿良,在@property屬性中添加后,會只生成get方法惫周,不生成set方法尘惧。
  • readwrite為只寫特性,在@property屬性中添加后递递,會只生成set方法喷橙,不生成get方法。

4.setter語意:assign登舞、retain重慢、copy

  • 在Objective-C中,擁有三個setter語意特性:assign逊躁、retain和copy似踱,默認情況下屬性特性是assign的。
  • 只要是值類型、簡單類型的類型核芽,比如說NSInteger囚戚、CGPoint、CGFloat轧简,以及C數(shù)據(jù)類型int驰坊、float、double等哮独,都應該使用assign拳芙。
  • 對于含有可深復制子類的對象,比如說NSArray皮璧、NSSet舟扎、NSDictionary、NSData悴务、NSString等等睹限,都應該使用copy特性。

以上是我對@property 和 @synthesize的簡單理解讯檐,說的不對的地方或者有更多見解的地方歡迎一起討論

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末羡疗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子别洪,更是在濱河造成了極大的恐慌叨恨,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挖垛,死亡現(xiàn)場離奇詭異特碳,居然都是意外死亡,警方通過查閱死者的電腦和手機晕换,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門午乓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闸准,你說我怎么就攤上這事益愈。” “怎么了夷家?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵蒸其,是天一觀的道長。 經(jīng)常有香客問我库快,道長摸袁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任义屏,我火速辦了婚禮靠汁,結(jié)果婚禮上蜂大,老公的妹妹穿的比我還像新娘。我一直安慰自己蝶怔,他們只是感情好奶浦,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著踢星,像睡著了一般澳叉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沐悦,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天成洗,我揣著相機與錄音,去河邊找鬼藏否。 笑死瓶殃,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的番甩。 我是一名探鬼主播棠涮,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了雾消?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤咧最,失蹤者是張志新(化名)和其女友劉穎翩腐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓝谨,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡灌具,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了譬巫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咖楣。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芦昔,靈堂內(nèi)的尸體忽然破棺而出诱贿,到底是詐尸還是另有隱情,我是刑警寧澤咕缎,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布珠十,位于F島的核電站,受9級特大地震影響凭豪,放射性物質(zhì)發(fā)生泄漏焙蹭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一嫂伞、第九天 我趴在偏房一處隱蔽的房頂上張望孔厉。 院中可真熱鬧拯钻,春花似錦、人聲如沸烟馅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郑趁。三九已至刊驴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寡润,已是汗流浹背捆憎。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梭纹,地道東北人躲惰。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像变抽,于是被迫代替她去往敵國和親础拨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 先講一個我從某本書上讀到的一個故事绍载。故事的內(nèi)容是诡宗,具體是哪一本書記不大清了,如果沒有記錯那么應該是《菊與刀》日本人...
    Commonsense閱讀 288評論 0 0
  • 為什么選擇他們? 前面的三個牛人阳谍,我選擇的都是企業(yè)家蛀柴,而且都是最有影響力的企業(yè)家。 不為其他矫夯,只因為他們直接影響人...
    熊注閱讀 165評論 0 1
  • 今天是我和他相識相戀14周年的紀念日鸽疾,仍然記得14年前經(jīng)同學的同學不經(jīng)意的認識了他。很普通的一個下午训貌,...
    杲杲1218閱讀 298評論 0 0
  • 一點秋涼 亂了方圓 蕭瑟墜了白情晚夢 或此生不面 時時忽恍 開心壓了誓言一諾 從此 再沒有真正笑過 拼拼湊湊 難于...
    植默閱讀 172評論 0 0
  • 等我遇見你 便御風而行 裁云為紙制肮、折柳為筆、清露為墨 抒寫你我出場旺订、邂逅的傳奇 而我寫在清風眉眼里的情思 會在盛夏...
    花呢suzie閱讀 242評論 0 1