這個(gè)問題有點(diǎn)困惑人,還以為@synthesize除了自動(dòng)合成還有其他的用處,查了好久也沒發(fā)現(xiàn)澈吨,這玩意就是用來自動(dòng)合成的把敢。問題的意思是編譯器讓我們不再用寫synthesize后,有什么場景還會(huì)用到這個(gè)谅辣。
有以下幾個(gè)情況
- 同時(shí)重寫了setter和getter時(shí)重寫了
- 只讀屬性的getter時(shí)
- 使用了@dynamic時(shí)
- 在 @protocol 中定義的所有屬性
- 在 category 中定義的所有屬性重載的屬性
- 當(dāng)你在子類中重載了父類中的屬性
你必須 使用@synthesize來手動(dòng)合成ivar修赞。
像這樣會(huì)報(bào)錯(cuò)。第一種情況桑阶,同事實(shí)現(xiàn)了getter和setter函數(shù)柏副。
屏幕快照 2016-04-17 12.36.50.png
參考鏈接http://stackoverflow.com/questions/19784454/when-should-i-use-synthesize-explicitly