個(gè)人的覺得應(yīng)該從值類型和引用類型出發(fā)去理解;我們知道,在OC中struct是值類型的,也就是說當(dāng)將一個(gè)結(jié)構(gòu)體賦值給另一個(gè)結(jié)構(gòu)體時(shí),二者實(shí)際上是相互獨(dú)立互不影響的,那么對(duì)于文中說的這種情況,當(dāng)使用@property修飾的結(jié)構(gòu)體,我們雖然表面是可以直接訪問到,但是實(shí)際上我們是調(diào)用的編譯器自動(dòng)生成的get方法,這樣就會(huì)有問題,因?yàn)閟truct是值類型,所以get方法會(huì)返回一個(gè)完全獨(dú)立的struct,而這種修改是完全沒有意義的,所以,編譯器就禁止了這種調(diào)用;而對(duì)于第二種情況,當(dāng)使用@public修飾struct時(shí),外部是直接訪問到的該struct,而不是該struct的一個(gè)值拷貝,所以是可以的
非專業(yè)程序員 評(píng)論自淺談 OC 與結(jié)構(gòu)體