最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年09月12日 11:10:15   作者:番薯大佬  
這篇文章主要介紹了IOS開發(fā)之@property的詳細介紹的相關(guān)資料,希望通過本文能幫助到大家,大家理解并會使用,需要的朋友可以參考下

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

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

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

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

使用格式

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

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

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

(1)原子性定義中,如果沒有涉及到多線程環(huán)境時,通常不會使用默認值atomic;
(2)讀寫屬性通過采用默認值readwrite;
(3)set方法處理時,需要針對不同的類型使用參數(shù),而不是全都使用默認值;
(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類的姓名、年齡:

使用默認值進行定義

@property age;

相當于

@property (atomic, assign) int age;

通過采用非原子性的,即

@property (nonatomic, assign) int age;

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

@property (nonatomic, assign) NSString *name;

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

@property (nonatomic, retain) NSString *name;

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

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

如果在定義時,重新定義了setter/getter方法,則系統(tǒng)默認分成的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;

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • IOS自適配利器Masonry使用指南

    IOS自適配利器Masonry使用指南

    如果說自動布局解救了多屏幕適配,那眾多三方庫的出現(xiàn)就解救了系統(tǒng)自動布局的寫法。Masonry就是其中一個。用法上也比較簡單靈活,很大程度上替代了傳統(tǒng)的NSLayoutConstraint布局方式。下面我們就來具體探討下吧
    2016-01-01
  • Objective-C Json 實例詳解

    Objective-C Json 實例詳解

    這篇文章主要介紹了 Objective-C Json 實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握Object-C Json的使用,需要的朋友可以參考下
    2017-10-10
  • IOS上iframe的滾動條失效的解決辦法

    IOS上iframe的滾動條失效的解決辦法

    這篇文章主要為大家詳細介紹了IOS上iframe的滾動條失效的解決辦法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS藍牙設(shè)備名稱緩存問題的解決方法

    iOS藍牙設(shè)備名稱緩存問題的解決方法

    這篇文章主要給大家介紹了關(guān)于iOS藍牙設(shè)備名稱緩存問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-09-09
  • iOS獲取本地音頻文件(屬性/信息)

    iOS獲取本地音頻文件(屬性/信息)

    這篇文章主要為大家詳細介紹了iOS獲取本地音頻文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • AVFoundation AVCaptureSession媒體捕捉

    AVFoundation AVCaptureSession媒體捕捉

    這篇文章主要為大家介紹了ios開發(fā)AVFoundation AVCaptureSession媒體捕捉詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • iOS?StoreKit?2?新特性盤點解析

    iOS?StoreKit?2?新特性盤點解析

    這篇文章主要為大家介紹了iOS?StoreKit?2?新特性盤點及要點解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • iOS通過逆向理解Block的內(nèi)存模型

    iOS通過逆向理解Block的內(nèi)存模型

    自從對 iOS 的逆向初窺門徑后,我也經(jīng)常通過它來分析一些比較大的應(yīng)用,參考一下這些應(yīng)用中某些功能的實現(xiàn)。這個探索的過程樂趣多多,不僅能滿足自己對未知的好奇心,還經(jīng)常能發(fā)現(xiàn)一些意外的驚喜。這篇文章主要介紹了iOS通過逆向如何深入理解Block內(nèi)存模型的相關(guān)資料。
    2017-01-01
  • 如何實現(xiàn)IOS_SearchBar搜索欄及關(guān)鍵字高亮

    如何實現(xiàn)IOS_SearchBar搜索欄及關(guān)鍵字高亮

    本文通過實例代碼演示如何實現(xiàn)IOS搜索欄及搜索關(guān)鍵字高亮,效果很棒,小編覺得對大家的學(xué)習會很有幫助,現(xiàn)在分享給大家,有需要的可以參考學(xué)習。
    2016-08-08
  • Objective-C基礎(chǔ) 自定義對象歸檔詳解及簡單實例

    Objective-C基礎(chǔ) 自定義對象歸檔詳解及簡單實例

    這篇文章主要介紹了Objective-C基礎(chǔ) 自定義對象歸檔詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評論

阳城县| 陆河县| 龙海市| 灌云县| 龙岩市| 元朗区| 萝北县| 天门市| 鄂伦春自治旗| 竹北市| 蓝山县| 东乡族自治县| 凤山县| 大邑县| 古浪县| 五莲县| 沿河| 赤城县| 滁州市| 景德镇市| 正安县| 仁布县| 苗栗县| 佛冈县| 柏乡县| 板桥市| 隆昌县| 平阴县| 通河县| 肇源县| 务川| 富宁县| 剑川县| 兴宁市| 黑河市| 吴旗县| 双江| 辰溪县| 曲麻莱县| 新宁县| 凤山市|