IOS開發(fā)之@property有什么用-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“IOS開發(fā)之@property有什么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“IOS開發(fā)之@property有什么用”這篇文章吧。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),龍海企業(yè)網(wǎng)站建設(shè),龍海品牌網(wǎng)站建設(shè),網(wǎng)站定制,龍海網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,龍海網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

IOS開發(fā)之@property的詳細(xì)介紹

在類中定義屬性時,總會使用到@property進(jìn)行定義,下面就來說說@property的使用。

在使用過程中,如果需求公開且在其他類中使用時,通常會定義在.h頭文件中;而如果只是該類自已需要使用,這時則會定義

在.m實現(xiàn)文件中。

使用格式

@property (參數(shù)1, 參數(shù)2, 參數(shù)3, ...) 參數(shù)類型 參數(shù)名稱

參數(shù)包括三個種類,七個屬性,如下圖所示。

IOS開發(fā)之@property有什么用

在使用過程中,有幾點(diǎn)需要注意:

(1)原子性定義中,如果沒有涉及到多線程環(huán)境時,通常不會使用默認(rèn)值atomic;
(2)讀寫屬性通過采用默認(rèn)值readwrite;
(3)set方法處理時,需要針對不同的類型使用參數(shù),而不是全都使用默認(rèn)值;
(4)set方法處理時,對于非對象參數(shù)類型,即基本數(shù)據(jù)類型,如int/float/double/BOOL等類型時,采用assign;
(5)set方法處理時,對于對象參數(shù)類型,如NSString/NSNumber/NSArray/…/NSDictionary等類型時,采用retain/copy;
(6)在使用過程中,定義某個屬性后,系統(tǒng)會自動生成setter/getter方法,但程序員可以根據(jù)需要修改setter/getter方法;
(7)同時會生成同名帶下劃線的成員變量,并在setter/getter方法中使用。

如,定義一個Person類的姓名、年齡:

使用默認(rèn)值進(jìn)行定義

@property age;

相當(dāng)于

@property (atomic, assign) int age;

通過采用非原子性的,即

@property (nonatomic, assign) int age;

對象類型的定義不能使用如下方式,因為該形式定義時,是直接進(jìn)行賦值,會造成內(nèi)存泄露。

@property (nonatomic, assign) NSString *name;

正確的方式應(yīng)該使用retain/copy進(jìn)行定義

@property (nonatomic, retain) NSString *name;

默認(rèn)生成的setter/getter方法分別是

- (void)setAge:(int)age;
- (int)age;
- (void)setName:(NSString *)name;
- (NSString *)name;

如果在定義時,重新定義了setter/getter方法,則系統(tǒng)默認(rèn)分成的setter/getter方法則無效了,使用時,需要調(diào)用新定義的

@property (nonatomic, retain, setter = setMyName:, getter = getMyName) NSString *name;

此時,使用時setter/getter方法為

- (void)setMyName:(NSString *)myName;
- (NSString *)getMyName;

早期的Xcode版本中,@property 還會結(jié)合 @systhesize 來使用才會生成setter/getter方法,如

@property (nonatomic, assing) int age;
@systhesize age;
// 或
@systhesize age = _age;

以上是“IOS開發(fā)之@property有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前文章:IOS開發(fā)之@property有什么用-創(chuàng)新互聯(lián)
本文URL:http://muchs.cn/article22/dcjgcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名網(wǎng)站內(nèi)鏈、網(wǎng)站改版、品牌網(wǎng)站制作、微信公眾號、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司