@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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。