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

iOS 對象屬性詳細(xì)介紹

 更新時(shí)間:2016年11月07日 11:49:32   投稿:lqh  
這篇文章主要介紹了iOS 對象屬性詳細(xì)介紹的相關(guān)資料,這里整理了IOS 對象的相關(guān)資料,需要的朋友可以參考下

iOS 對象屬性

oc對象的一些屬性:

retain,strong, copy,weak,assign,readonly, readwrite, unsafe_unretained

下面來分別講講各自的作用和區(qū)別:

retain,計(jì)數(shù)器加1, (增加一個(gè)指向內(nèi)存的指針) 對應(yīng)release(計(jì)數(shù)器-1) setter 方法對參數(shù)進(jìn)行 release 舊值再 retain 新值,所有實(shí)現(xiàn)都是這個(gè)順序

- (void)setBackView:(UIView *)backView {

  if (_backView != backView) {

    [_backView release];

    _backView = [backView retain];
  }

  return _backView;
}

copy, 拷貝,新開地址,內(nèi)容拷貝, setter 方法進(jìn)行 Copy 操作,與 retain 處理流程一樣,先舊值 release ,再 Copy 出新的對象, retainCount 為 1 。這是為了減少對上下文的依賴而引入的機(jī)制。

(提一點(diǎn)深拷貝shallow copy,淺拷貝deep copy)

這篇文章比較直觀(http://blog.csdn.net/omegayy/article/details/7311839)

官方文檔(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/Articles/Copying.html)

copy和mutableCopy調(diào)用后表現(xiàn)的行為到底是什么樣完成取決于類本身NSCopying和NSMutableCopying協(xié)議是如何實(shí)現(xiàn)的。

 strong, 強(qiáng)引用,計(jì)數(shù)器加1,和retain一樣(對應(yīng)retain和copy)

weak,弱引用

strong 用來修飾強(qiáng)引用的屬性;

@property (strong) SomeClass * aObject; 
對應(yīng)原來的 
@property (retain) SomeClass * aObject; 和 @property (copy) SomeClass * aObject; 

weak 用來修飾弱引用的屬性;
@property (weak) SomeClass * aObject; 
對應(yīng)原來的 
@property (assign) SomeClass * aObject; 

__weak, __strong 用來修飾變量,此外還有 __unsafe_unretained, __autoreleasing 都是用來修飾變量的。
__strong 是缺省的關(guān)鍵詞。
__weak 聲明了一個(gè)可以自動(dòng) nil 化的弱引用。
__unsafe_unretained 聲明一個(gè)弱應(yīng)用,但是不會(huì)自動(dòng)nil化,也就是說,如果所指向的內(nèi)存區(qū)域被釋放了,這個(gè)指針就是一個(gè)野指針了。
__autoreleasing 用來修飾一個(gè)函數(shù)的參數(shù),這個(gè)參數(shù)會(huì)在函數(shù)返回的時(shí)候被自動(dòng)釋放。

strong和weak的區(qū)別

(weak和strong)不同的是 當(dāng)一個(gè)對象不再有strong類型的指針指向它的時(shí)候 它會(huì)被釋放  ,即使還有weak型指針指向它。

一旦最后一個(gè)strong型指針離去 ,這個(gè)對象將被釋放,所有剩余的weak型指針都將被清除。

可能有個(gè)例子形容是妥當(dāng)?shù)摹?/p>

想象我們的對象是一條狗,狗想要跑掉(被釋放)。

strong型指針就像是栓住的狗。只要你用牽繩掛住狗,狗就不會(huì)跑掉。如果有5個(gè)人牽著一條狗(5個(gè)strong型指針指向1個(gè)對象),除非5個(gè)牽繩都脫落 ,否著狗是不會(huì)跑掉的。

weak型指針就像是一個(gè)小孩指著狗喊到:“看!一只狗在那” 只要狗一直被栓著,小孩就能看到狗,(weak指針)會(huì)一直指向它。只要狗的牽繩脫落,狗就會(huì)跑掉,不管有多少小孩在看著它。

只要最后一個(gè)strong型指針不再指向?qū)ο螅敲磳ο缶蜁?huì)被釋放,同時(shí)所有的weak型指針都將會(huì)被清除。

assign,用于簡單類型,計(jì)數(shù)器不加,直接賦值,一個(gè)指針,一塊地址, setter 方法直接賦值,不進(jìn)行任何 retain 操作,為了解決原類型與環(huán)循引用問題

readonly,只讀,只生成get方法,沒有set方法

readwrite,默認(rèn),可讀寫,set,get方法都會(huì)生成

unsafe_unretained,類似weak,所謂的unSafe就是指會(huì)容易出現(xiàn)也指針的情況,慎用

setter = xxxx,聲明對象的set方法

getter = xxxx, 聲明對象的get方法

nonatomic,非原子操作,系統(tǒng)不添加代碼,運(yùn)行速度相對快,但數(shù)據(jù)操作在多線程情況下相對不安全

atomic,原子操作,編譯時(shí)會(huì)增加很多加鎖解鎖代碼,數(shù)據(jù)操作在多線程情況下相對安全

* 使用assign: 對基礎(chǔ)數(shù)據(jù)類型 (NSInteger)和C數(shù)據(jù)類型(int, float, double, char,等)
* 使用copy: 對NSString
* 使用retain: 對其他NSObject和其子類

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • iOS開發(fā)之Objective-c的Runtime理解指南

    iOS開發(fā)之Objective-c的Runtime理解指南

    這篇文章主要介紹了iOS開發(fā)之Objective-c的Runtime理解指南的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • IOS網(wǎng)絡(luò)請求之NSURLSession使用詳解

    IOS網(wǎng)絡(luò)請求之NSURLSession使用詳解

    這篇文章主要介紹了IOS網(wǎng)絡(luò)請求之NSURLSession使用詳解,今天使用NSURLConnection分別實(shí)現(xiàn)了get、post、表單提交、文件上傳、文件下載,有興趣的可以了解一下。
    2017-02-02
  • Objective-C中NSNumber與NSDictionary的用法簡介

    Objective-C中NSNumber與NSDictionary的用法簡介

    這篇文章主要介紹了Objective-C中NSNumber與NSDictionary的用法簡介,雖然Objective-C即將不再是iOS的主流開發(fā)語言...well,需要的朋友可以參考下
    2015-09-09
  • iOS App開發(fā)中UIViewController類的使用教程

    iOS App開發(fā)中UIViewController類的使用教程

    UIViewController是iOS中控制視圖的關(guān)鍵所在,這里我們將針對UIViewController的聲明周期與主要屬性和方法,來總結(jié)iOS App開發(fā)中UIViewController類的使用教程
    2016-07-07
  • UITableViewCell在編輯狀態(tài)下背景顏色的修改方法

    UITableViewCell在編輯狀態(tài)下背景顏色的修改方法

    這篇文章主要給大家介紹了關(guān)于UITableViewCell在編輯狀態(tài)下背景顏色的修改方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • iOS實(shí)現(xiàn)卡片式滾動(dòng)效果 iOS實(shí)現(xiàn)電影選片效果

    iOS實(shí)現(xiàn)卡片式滾動(dòng)效果 iOS實(shí)現(xiàn)電影選片效果

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)卡片式滾動(dòng)效果,實(shí)現(xiàn)電影選片效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • iOS app中無網(wǎng)絡(luò)頁面的添加方法詳解

    iOS app中無網(wǎng)絡(luò)頁面的添加方法詳解

    這篇文章主要給大家介紹了關(guān)于iOS app中無網(wǎng)絡(luò)頁面的添加方法的相關(guān)資料,通過文中提供的方法可以很方便的給大家進(jìn)行提供一個(gè)提醒,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • iOS開發(fā)實(shí)現(xiàn)簡單抽屜效果

    iOS開發(fā)實(shí)現(xiàn)簡單抽屜效果

    這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)實(shí)現(xiàn)簡單抽屜效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • iOS NSCache和NSUrlCache緩存類實(shí)現(xiàn)示例詳解

    iOS NSCache和NSUrlCache緩存類實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了iOS NSCache和NSUrlCache緩存類實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • iOS和JS交互教程之WKWebView-協(xié)議攔截詳解

    iOS和JS交互教程之WKWebView-協(xié)議攔截詳解

    這篇文章主要給大家介紹了關(guān)于iOS和JS交互教程之WKWebView-協(xié)議攔截的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09

最新評論

兴化市| 微山县| 高阳县| 蒙自县| 蒙山县| 宝鸡市| 崇礼县| 马鞍山市| 子洲县| 台州市| 佛山市| 中江县| 金平| 河北省| 灵璧县| 汕头市| 常德市| 鹤壁市| 靖安县| 依安县| 尚志市| 泰顺县| 凤城市| 大宁县| 普兰店市| 阳曲县| 宁强县| 大化| 高阳县| 仁怀市| 仁布县| 旬邑县| 瑞安市| 清水县| 博兴县| 延边| 汉中市| 惠安县| 舒兰市| 涪陵区| 灵寿县|