91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS開發之@property有什么用

發布時間:2021-08-04 11:55:34 來源:億速云 閱讀:129 作者:小新 欄目:移動開發

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

IOS開發之@property的詳細介紹

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

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

在.m實現文件中。

使用格式

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

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

IOS開發之@property有什么用

在使用過程中,有幾點需要注意:

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

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

使用默認值進行定義

@property age;

相當于

@property (atomic, assign) int age;

通過采用非原子性的,即

@property (nonatomic, assign) int age;

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

@property (nonatomic, assign) NSString *name;

正確的方式應該使用retain/copy進行定義

@property (nonatomic, retain) NSString *name;

默認生成的setter/getter方法分別是

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

如果在定義時,重新定義了setter/getter方法,則系統默認分成的setter/getter方法則無效了,使用時,需要調用新定義的

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

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

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

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

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

以上是“IOS開發之@property有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东阿县| 吉首市| 原阳县| 永济市| 云南省| 延长县| 来宾市| 会昌县| 怀远县| 枣强县| 中西区| 梅州市| 扎赉特旗| 额尔古纳市| 南雄市| 霍州市| 元谋县| 微山县| 仁布县| 通辽市| 涡阳县| 库车县| 景谷| 嘉定区| 平邑县| 濮阳市| 抚州市| 龙泉市| 霍邱县| 交城县| 永济市| 清河县| 长宁区| 陵水| 仁化县| 长乐市| 大同县| 潞西市| 遂川县| 昭苏县| 荣成市|