@property 會在 implementation section 自動幫你增加 setter/getter 方法
優點是可以減少程式碼複雜度,因為該程式碼是隱藏的。
然而,若是XCode發現我們同時自行定義了setter與getter,
這時候就必須增加synthesize keyword,
自行定義value的instance object
否則編譯器將會回報錯誤。
#import <Foundation/Foundation.h>
@interface demo : NSObject
@property (nonatomic,getter = getNumber) myClass *myValue
//getter=getNumber 於下面實作檔解說
//此處以@property宣告的變數會自動產生setter與getter
@end
#import "demo.h"
@implementation demo
@synthesize myValue = _myValue;
//若是同時於實作自行定義setter與getter就必須要宣告此段程式碼
//也可以直接定義 @synthesize myValue
//instance object與宣告名稱相同
//_value 是property
//自動產生於 implementation的instance object 的命名方式
//@synthesize myValue = iCanUseNewName;
//也可以自行設定想要的名稱
-(void)setMyValue : value{
//setter 自動命名為 setMyValue
//當然也可以自行設定 像getter一樣
_myValue = value;
}
-(myClass *)getNumber{
return _myValue;
}
@end
文章標籤
全站熱搜