@property 會在 implementation section 自動幫你增加 setter/getter 方法

這裡有關於property(裡面的一些關鍵字說明)

 

優點是可以減少程式碼複雜度,因為該程式碼是隱藏的。

 

 

然而,若是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
arrow
arrow

    Ernest 發表在 痞客邦 留言(0) 人氣()