| @interface MyViewController :UIViewControlle {
UIButton *yourButton; int count; id data; } @property(nonatomic, strong) UIButton *myButton; @end |
在{ }中所聲明的變量都為成員變量。 所以yourButton、count、data都是成員變量。既然如此,實例變量又是什么意思呢?實例變量本質上就是成員變量,只是實例是針對類而言,實例是指類的聲明。{ }中的yourButton就是實例變量。id 是OC特有的類,本質上講id等同於(void *)。所以id data屬於實例變量。
成員變量用於類內部,無需與外界接觸的變量。因為成員變量不會生成set、get方法,所以外界無法與成員變量接觸。根據成員變量的私有性,為了方便訪問,所以就有了屬性變量。屬性變量的好處就是允許讓其他對象訪問到該變量(因為屬性創建過程中自動產生了set 和get方法)。當然,你可以設置只讀或者可寫等,設置方法也可自定義。所以,屬性變量是用於與其他對象交互的變量。
綜上所述可知:成員變量是定義在{}號中的變量,如果變量的數據類型是一個類則稱這個變量為實例變量。因為實例變量是成員變量的一種特殊情況,所以實例變量也是類內部使用的,無需與外部接觸的變量,這個也就是所謂的類私有變量。而屬性變量是用於與其他對象交互的變量。
但是,現在大家似乎都不怎么喜歡用成員變量來定義類的變量,都喜歡用屬性變量來定義類的變量。把需要與外部接觸的變量定義在.h文件中,只在本類中使用的變量定義在.m文件中。
可以看到在接口 @interface括號里面的統稱為”成員變量”,實例變量是成員變量中的一種!
除去基本數據類型int float ....等,其他類型的變量都叫做實例變量。
實例變量+基本數據類型變量=成員變量
作者:th先生
鏈接:https://www.jianshu.com/p/a3c2747866c2
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。
