oc訪問成員變數嗎
發布時間: 2024-11-29 00:14:59
『壹』 OC中在.h和.m中聲明的屬性和成員變數有何區別
呃呃。。。在h中聲明相當於把這個屬性暴露出去,外面是可以使用和修改的(如果你願意讓別人修改),但是在m文件中聲明的屬性那就屬於私有變數,只能在本類使用,外面無法訪問
『貳』 self.變數 和 變數 的區別
屬性可以用dot(.)語法,比如self.xxx,在外部調用也同樣可以someClass.xxx。
屬性實際上是對一組set和get方法的簡單封裝(oc的get方法沒有get前綴),同樣會自動生成一個私有的成員變數(名稱為:下劃線+屬性名)。
成員變數無論是全局還是局部的,都只能在本類或當前函數中使用,在其之外的地方無法直接調用(可以通過間接的方式調用)。
在本類使用時,屬性self.xxx會給私有的_xxx變數增加一次引用計數,相當於多retain了一次。如果不使用ARC,分別給普通變數和屬性賦值,列印一下引用計數你就明白了。如果你使用ARC,完全不需要考慮引用計數相關的東西。
總而言之,如果你當前類需要被外部調用,而且需要方便訪問某個變數,那就應該把這個變數設為屬性。如果只是在類內部使用,使用普通變數和使用屬性沒有任何區別,就看個人習慣了。
熱點內容