iOS開發的52個要點紀要之二

來源:互聯網
上載者:User

標籤:

6、可以用屬性@property文法來定義對象中所封裝的資料。

通過“特質”來指定存數資料所需的正確語義。

在設定屬性所對應的執行個體變數時,一定要遵從該屬性所聲明的語義。

開發iOS程式時應該使用nonatomic屬性,因為atomic屬性會嚴重影響效能。

7、在對象內部讀取資料時,應該直接通過執行個體變數來讀,而寫入資料時,則應通過屬性來寫。

在初始化方法及dealloc方法中,總是應該直接通過執行個體變數來讀寫資料。

有時會使用惰性初始化技術配置某份資料,這種情況下,需要通過屬性來讀取資料。

8、若要檢測對象的等同性,請提供“isEqual:”與hash方法。

相同的對象必須具有相同的雜湊碼,但是兩個雜湊碼相同的對象卻未必相同。

不要盲目地逐個檢測每條屬性,而是應該依照具體需要來制定檢測方案。

編寫hash方法時,應該使用計算速度快而且雜湊碼碰撞幾率低的演算法。

9、類族模式可以把實現細節隱藏在一套簡單的公用介面後面。

系統架構中經常使用類族。

從類族的公用抽象基類中繼承子類時要當心,若有開發文檔,則應首先閱讀。

10、通過objc_setAssociatedObject“關聯對象”機制把兩個對象連起來。

定義關聯對象時可指定記憶體管理語義,用以模仿定義屬性時所採用的“擁有關係”與“非擁有關係”。

只有在其他做法不可行時才應該選用關聯對象,因為這種做法通常會引入難以尋找的bug。

iOS開發的52個要點紀要之二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.