OC屬性訪問

一、設(shè)置器setter 訪問器getter

setter:

set+首字母大寫的實例變量名

如:- (void)setNickName:(NSString *) name;//參數(shù)名不要與實例變量名相同

getter:

與實例變量名相同(沒有短橫線),并且返回值類型也一致

例:

@interface Cup:NSObject

{

float _price;

}

- (void)setPrice:(float)price;

- (float)price;

@end

二、屬性和實例變量的區(qū)別

1. ? oc中實例變量的訪問方式

oc中成員變量有三種訪問權(quán)限,@public,@protected,@private。默認(rèn)是@protected,再C++中默認(rèn)是private。

@public 直接使用‘->’

@private @protected都需要分別給出設(shè)置方法和訪問方法

建議實例變量都加下劃線,與系統(tǒng)命名方式一致

2.property 屬性是一組設(shè)置器和訪問器,需要聲明和實現(xiàn)

@property float price;

@synthesize price = _price;

(方法調(diào)試出錯要會看 [receiver message])

3.屬性的屬性

屬性也可以設(shè)置屬性(attribute):只讀(readonly, ? 默認(rèn)是readwrite屬性,原子性屬性,setter語義屬性

(1)readonly 只讀

(2)給setter和getter方法起別名(setter = a:, getter = b)

atomic ?開啟多線程變量保護(hù),會消耗一定的資源(非原子性,保證多線程安全)

nonatomic:禁止多線程變量保護(hù),提高性能

(3)setter語義屬性:

assign:直接賦值,適用于基本數(shù)據(jù)類型(非對象類型)

retain:賦值時做內(nèi)存優(yōu)化,使用于對象類型

copy:復(fù)制一個副本,適用于特殊的對象類型(有NSCoping協(xié)議的才可以用copy)

assign retain copy的setter方法的內(nèi)部實現(xiàn)(筆試題)

assign:

@property float price;

內(nèi)部實現(xiàn):

- (void)setPrice:(float)price

{

_price = price;

}

getter是:

- (float)price

{

return _price;

}

retain:

@property (retain, readwrite, nonatomic) NSString *company;

內(nèi)部實現(xiàn):

- (void)setCompany:(NSString *)company{

if(_company != company){

[_company release];

[company retain];

_company = company;

}

}

copy:

@property (copy, readwrite, nonatomic) NSString *company;

內(nèi)部實現(xiàn):

- (void) setCompany:(NSString *)company{

if(_company != company){

[_company release];

[company copy];

_company = company;

}

}

三、使用屬性和點語法

點語法(和[receriver message]是等價的)

1.性能有點差,內(nèi)部轉(zhuǎn)化為setter,getter

2.不易理解蘋果的調(diào)用機制

3.屬性

只要有setter(或getter)就可以使用點語法

四、封裝

封裝的好處:

使用起來更加簡單

變量更加安全

可以隱藏內(nèi)部實現(xiàn)細(xì)節(jié)

開發(fā)速度加快

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容