成員變數的作用域
@inte***ce person : nsobject
屬性生成器
// 屬性生成器 @property
/* <1.自動的生成 getter和setter方法的 宣告
<2.需要知道 引數型別和屬性名稱
<3.是編譯器的特性
*/// @synthesize 生成getter 和 setter方法,最為簡單的實現
//@synthesize name = _name; // 跟成員變數 _name 繫結
//@synthesize age = _number; // 跟成員變數_number 繫結
// @synthesize age = _number;即
- (void)setage:(int)age
- (int)age
在點語法訪問age的時候,得到的是_number的值
設定age的時候,設定的是_number的值
// xcode4.5之後**變得簡單
只需要寫 @property int age;
系統會自動生成
////@implementation persontest
////@synthesize age = _age;
////- (void)setage:(int)age
//- (int)age // 如果子類想要對父類中的私有變數進行操作 ,就要寫setter。getter方法
// 成員變數預設宣告是@protected 只有在自己的內部或者子類的內部才可以『直接訪問』 如果想要在外部訪問的話,就需要寫setter getter 方法
// 如果乙個類宣告了成員變數為 @private 只能在本類中使用 如果子類想要對父類中的私有變數進行操作 ,就要寫setter。getter方法
// 當真的需要控制成員變數的值的時候,可以選擇重寫setter方法
// 如果setter 和getter 都重寫了,@property就不會自動幫助我們生成以_開頭的成員變數了
//@implementation persontest
需要我們要自己宣告
屬性,例項變數和成員變數
synthesize window window 意思是說,window 屬性為 window 例項變數合成訪問器方法。解析 意思是說window屬性生成訪問方法 setwindow方法,而這個方法就是實際變數 window的 的訪問方法,setwindow操作的就是 window這個方法。ps w...
iOS成員變數和屬性
成員變數的優點 1.能夠定義作用於 protect public package private 2.不走setter和getter方法,讀取速度快 這個走的是什麼 屬性1.能夠定義讀寫屬性,原子屬性,setter和getter方法名稱 2.不需要自己去管理記憶體 這裡有個疑問 就是在解除迴圈引用的...
為category新增屬性和成員變數
category可以在不改變類結構的情況下為已有的類新增方法,但是category不執行新增屬性和成員方法,這可以用中的 objc setassociatedobject idobject,const void key,idvalue,objc associationpolicy policy 和 ...