可能重複:
Explain to me what is a setter and getter的Objective-C(iPhone開發)
什麼是getter和setter方法?無法在維基百科和其他地方找到它。
可能重複:
Explain to me what is a setter and getter的Objective-C(iPhone開發)
什麼是getter和setter方法?無法在維基百科和其他地方找到它。
他們給出經常同時被稱爲mutators
和accessors
。
一種用於mutator
/accessor
產生以下結果的搜索:
在計算機科學中,增變的方法是用於控制變化的變量的方法。 mutator方法,有時稱爲「setter」,最常用於面向對象的編程,與封裝原則保持一致。根據這個原則,一個類的成員變量被隱藏起來以隱藏並保護它們免受其他代碼的影響,並且只能通過一個公共成員函數(mutator方法)進行修改,該函數將所需的新值作爲參數,可選地驗證它並修改私有成員變量。 通常,「setter」伴隨着一個「getter」(也稱爲訪問器),它返回私有成員變量的值。
http://en.wikipedia.org/wiki/Mutator_method
您可以通過declared properties在Onbjectice-C使用範例:
@interface MyClass : NSObject
{
NSString *value;
}
@property(copy, readwrite) NSString *value;
@end
@implementation MyClass
@synthesize value;
@end
getter和setter是一個對象,允許您隱藏內部實現方法的東西,但仍然允許其他物體訪問的東西。他們還允許您在被調用時執行驗證或其他任務。
在objective-c中,它們與屬性的概念聯繫在一起 - 如果你定義了一個屬性,你就可以獲得對象函數的getters和setters。
例如,如果您想知道有多少次被問到了什麼?
@interface MyDataHolder {
NSData *data;
NSInteger count;
}
@property (readonly) NSData *data;
@end
,並在您.m文件
@implementation MyDataHolder
...
- (NSData *)data {
count ++;
return data;
}
現在,只需通過詢問數據,計數加爲好。
還有更多文檔about properties here和@ jussi的鏈接是一般getters/setters更好的概述。
沒有解釋這很好... –