這是@property的兩個(gè)對(duì)應(yīng)詞吧秕,@synthesize和@dynamic
1.@synthesize告訴編譯器:如果你沒(méi)有手動(dòng)實(shí)現(xiàn)setter和getter方法始赎,編譯器會(huì)自動(dòng)幫你生成
2.@dynamic告訴編譯器:用戶需要自己實(shí)現(xiàn)setter和getter方法香璃,不自動(dòng)生成这难。假如一個(gè)屬性被聲明為 @dynamic var,然后你沒(méi)有提供 @setter方法和 @getter 方法葡秒,編譯的時(shí)候沒(méi)問(wèn)題姻乓,但是當(dāng)程序運(yùn)行到 instance.var = someVar,由于缺 setter 方法會(huì)導(dǎo)致程序崩潰眯牧;或者當(dāng)運(yùn)行到 someVar = var時(shí)蹋岩,由于缺 getter 方法同樣會(huì)導(dǎo)致崩潰。編譯時(shí)沒(méi)問(wèn)題学少,運(yùn)行時(shí)才執(zhí)行相應(yīng)的方法剪个,這就是所謂的動(dòng)態(tài)綁定。