OC中在.h和.m中聲明的屬性和成員變量有何區別?


相比Swift而言,OC規矩太多.

差不多,.h中聲明的屬性和成員變量均可以在子類中訪問到.而.m則不可.而屬性其實也就是成員變量的一種簡寫,其內部自動包含了getter和setter方法.

如圖:ViewController是SubController的父類.在ViewController.h中聲明成員變量imageView1和屬性imageView2

在ViewController.m中同樣聲明了成員變量imageView3和屬性imageView4.

在ViewController.m中

1,通過self.xxx的方法可以出現imageView2和imageView4

2.通過 _XXX的形式只能出現imageView2,imageView4

3.通過XXX的形式只能出現imageView1.imageView3

在子類SubController.m中

1.通過self.XXX的形式只能出現imageView2

2.通過 _XXX的形式什么都不會出現.

3.通過XXX的形式可以出現imageView1

開發中,一般在成員變量前面加個_.

這樣一來就明了了.

在本類中訪問,通過self.XXX可以訪問到imageView2和imageView4.

通過_XXX都可以訪問,XXX則都不能

子類中,通過self.XXX可以訪問imageView2,通過_XXX可以訪問到imageView1,XXX則都不能.

(其中很多和舊版的OC語言有關,小生不了解)

 

總之,差不多就是在.h中聲明的屬性或者成員變量在其子類中均可以訪問到,只不過形式不一樣.

                     在.m中聲明的屬性或者成員變量只能在本類中訪問到.

而屬性其實就是成員變量的簡寫,內部自動包含了getter和setter方法.

我的理解是這樣,不知對否.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM