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

溫馨提示×

溫馨提示×

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

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

如何在IOS中使用property屬性

發布時間:2021-03-30 17:44:15 來源:億速云 閱讀:157 作者:Leah 欄目:移動開發

本篇文章為大家展示了如何在IOS中使用property屬性,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

IOS property屬性

原子性

  • atomic

  • nonatomic

訪問權限

  • readWrite

  • readOnly

內存管理

  • strong

  • retain

  • copy

  • assign

  • weak

  • unsafe_unretained

方法命名

  • getter = <name>

  • setter = <name>

結論

1、原子性

     (1)atomic

               原子性,可以理解成就是生成getter、setter方法時,編譯器會自動為程序添加同步鎖,減少因為在不同的線程中同時對同一個內存地址進行讀寫操作,而產生的二意性、數據混亂的情況。

               但同步鎖也不能一定保證能完全阻止同時讀寫的情況發生,而且同步鎖會耗費較多資源,降低程序的效率,因此不建議使用,但atomic是默認的特性。

     (2)nonatomic

               非原子性,也就是不添加同步鎖,讀寫效率會高,但需要開發人員注意同時讀寫的情況,可以使用gcd的欄柵和同步方法來保證。

2、訪問權限

     (1)readWrite

               生成getter、setter方法,并生成實例變量指針,但對于靜態庫類是無法修改的,所以即使能進入頭文件也無法修改。

     (2)readOnly

               只生成getter方法,可以用于數據保護,在interface中把屬性聲明了readOnly,在continue-class中再把屬性聲明為readWrite,就能實現私有屬性的效果,從而有更好的封裝特性,但其實通過KVC

               依然可以從外部修改屬性,但不建議這樣使用。

3、內存管理

     (1)strong:strong是推出ARC自動計數后后添加的屬性,效果與retain基本一致,都是在setter方法中,對舊數值release,對新數值retain。
     (2)retain與strong基本一致
     (3)assign:簡單賦值操作,通常針對普通類型,既不release,也不retain
     (4)copy:能更好實現上下文環境保護。對舊值release,對新值進行copy操作,immutable+copy = 不可變淺復制,mutable+copy = 不可變深復制。
     (5)weak:weak特性,并不會持有對象,當指向對象的指針全撤銷后,對象釋放,指針置nil,這常用于block的保留環
     (6)unsafe_unretained:不會持有對象,但引用對象,對象釋放后,會產生野指針,主要用于兼容以前的方法。

4、方法命名

     (1)getter = <name>

                屬性生成的默認getter方法名:屬性名

     (2)setter = <name>

               屬性生成的默認getter方法名:set+屬性名

上述內容就是如何在IOS中使用property屬性,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

伊宁县| 永城市| 龙陵县| 苍梧县| 寿阳县| 叶城县| 江西省| 鄄城县| 大冶市| 湘潭市| 闸北区| 镇远县| 缙云县| 小金县| 顺平县| 蒲江县| 图片| 淳安县| 武清区| 来安县| 城口县| 行唐县| 岢岚县| 丹东市| 临江市| 浦江县| 柘城县| 铜鼓县| 丰城市| 华安县| 额济纳旗| 武陟县| 依安县| 齐齐哈尔市| 垣曲县| 广宗县| 江油市| 荥阳市| 洛南县| 抚州市| 竹北市|