oc中每乙個類都有乙個.h檔案和.m檔案,
.h檔案存放公共的api,其他模組可以呼叫,
.m檔案檔案存放私有api和所有的介面實現。
示例:card.h 檔案:
#import @inte***ce card : nsobject
@property (strong,nonatomic) nsstring *contents;
@property (nonatomic,getter=ischosen) bool chosen;
@end
card.m 檔案:
#import "card.h"
// 通過類別宣告私有成員
@inte***ce card()
@property (strong, nonatomic) nsmutablearray *cards;
@end
// 類實現
@implementation card
@synthesize contents = _contents;
@synthesize chosen = _chosen;
-(instancetype) init
return self;
}// 在getter中初始化成員變數
-(nsmutablearray *) cards
-(nsstring *) contents
-(void) setcontents:(nsstring *)contents
@end
注意:
使用nsobject必須包含標頭檔案
#import。
@synthesize
contents =
_contents
; 為屬性分配例項物件。
@property 語句會自動在
implementation 中生成 @synthesize、getter、setter 語句,但是這些自動生成**對使用者不可見。
在 @property 宣告中的幾個關鍵字:
strong 強指標表示,只要強指標指向的這塊記憶體,有至少乙個強指標指向它,這塊記憶體就不會從堆中被釋放,當沒有強指標指向這塊記憶體時,這塊記憶體立即被釋放;
weak 弱指標表示,只要弱指標指向的這塊記憶體,有至少乙個強指標指向它,則該弱指標也指向它,當沒有強指標指向這塊記憶體時,該弱指標被自動設為nil。
乙個屬性,要麼是強指標,要麼是弱指標。
nonatomic 非原子性表示,該屬性的 getter 和 setter 不是執行緒安全的,不能有兩個執行緒同時設定該屬性。
getter
=method 重設getter方法的名稱
iOS 中的類屬性
ios 知識小集 建立乙個類屬性很簡單,主要有以下幾個步驟 1.使用 property class 來宣告乙個類屬性 2.為類屬性建立乙個儲存變數,通常為全域性變數 3.實現類屬性的getter與setter方法,如果是唯讀屬性,只需要實現getter方法。具體實例如圖2所示。需要注意的是編譯器不會...
ios 子類屬性的更改
你可以重寫乙個 readonly 屬性,並用可寫來替換它。例如,下面定義了乙個類 myinteger 它有乙個唯讀的屬性 value inte ce myinteger nsobject property readonly nsinteger value end implementation myi...
python限定類屬性的類屬性 slots
slots 由於python是動態語言,任何例項在執行期都可以動態地新增屬性。如果要限制新增的屬性,例如,student類只允許新增 name gender和score 這3個屬性,就可以利用python的乙個特殊的 slots 來實現。顧名思義,slots 是指乙個類允許的屬性列表 class s...