《Effective Objective-C 2.0》讀後總結 之五

來源:互聯網
上載者:User

標籤:全域   有助於   for迴圈   失效   cti   pos   自己的   之間   擷取   

寫在前面的話:

1、從現在,這一刻,開始努力,動起來!

2、《Effective Objective-C 2.0》這是一本非常實在的書,各個章節用具體的例子告知讀者如此這般的緣由!

3、書已經買了很久,也隔三差五的看一下,本次是按照本書章節,總結本書內容以及自己的體會!

4、願共勉之!

第47條:熟悉系統架構

47.1:許多系統架構都可以直接使用。其中最重要的是Foundation與CoreFoundation,這兩個架構提供了構建應用程式所需的許多核心功能。

47.2:許多常見任務都能用架構來做,例如音頻與視頻處理,網路通訊、資料管理等。

47.3:請記住:用純C寫成的架構與用Objective-C寫成的一樣重要,若想成為優秀的Objective-C開發人員,應掌握C語言的核心概念。

第48條:多用塊枚舉,少用for迴圈 

48.1:遍曆collection有四種方式。最基本的辦法是for迴圈,其次是NSEnumerator遍曆法及快速遍曆法,最新、最先進的方式則是“塊枚舉法”;

48.2:“塊枚舉法”本身就能通過GCD來並發執行遍曆操作,無須另行編寫代碼。而採用其他遍曆方式則無法輕易實現這一點。

48.3:若提前知道待遍曆的collection含有何種對象,則應修改塊簽名,指出對象的具體類型。

第49條:對自訂其記憶體管理語義的collection使用無縫橋接

49.1:通過無縫橋接技術,可以在Foundation架構中的Objectiove-C對象與CoreFoundation架構中的C語言資料結構之間來迴轉換;

49.2:在CoreFoundation層面建立collection時,可以指定許多回呼函數,這些函數表示此collection應如何處理其他元素。然後,可運用無縫橋接技術,將其轉換成具備特殊記憶體管理語義的Objective-C collection。

第50條:構建緩衝時選用NSCache而非NSDictionary 

50.1:實現緩衝時應選用NSCache而非NSDoictionary對象。以內NSCache可以提供優雅的自動刪減功能,而且是“安全執行緒的”,此外,它與字典不同,並不會拷貝鍵。

50.2:可以給NSCache對象設定上限,用以限制緩衝中的對象總個數以及“總成本”,而這些尺度則定義了緩衝刪減其中對象的時機。但是絕對不要把這些尺寸當成可靠的“硬限制(hadr limit)”,它們僅僅對NScache起指導作用。

50.3:將NSPurgeableData 與 NSCache搭配使用,可以實現自動清除資料的的功能,也就是說,當NSPurgeableData對象所佔記憶體為系統所丟棄時,該對象本身也會從緩衝中移除。

50.4:如果緩衝使用得當,那麼應用的響應速度就能提高。只有那種“衝刺呢計算看起來很費事的”資料,才值得放入緩衝,比如那些需要從網路擷取或從磁碟讀取的資料。

第51條:精簡initialize與load的實現代碼

51.1:在載入階段,如果類實現了load方法,那麼系統就會調用它。分類裡也可以定義此方法,類的load方法要比分類中的現調用。與其他方法不同,load方法不參與覆寫機制。

51.2:首次使用某個類之前,系統會向其發送initialize訊息。由於此方法遵從普通的覆寫規則,所以通常應該在裡面判斷當前要初始化的是哪個類。

51.3:load與initialize方法都應該實現的精簡一些,這有助於保持應用程式的響應能力,也能減少引入“依賴環”(interdependency cycle)的幾率。

51.4:無法在編譯期設定的全域常量,可以放在initialize方法裡初始化。

第52條:別忘了NStimer會保留其目標對象

52.1:NSTimer對象會保留其目標,直到計時器本身失效為止,調用invalidate方法可令計時器失效,另外,一次性的計時器在觸發完任務之後就會失效。

52.2:反覆執行任務的計時器(repeating timer)很容易引入保留環,如果這種計時器的目標對象又保留了計時器本身,那肯定會導致保留還。這種環狀保留關係,可能是直接發生的,也可能是通過對象圖裡的其他對象簡介發生的。

52.3:可以擴充NStimer的功能,用“塊”來打破保留環。不過,除非NSTimer將來在公用介面裡提供此功能,否則必須建立分類,將相關代碼加入其中。

本章主要是《Effective Objective-C》的第七章的內容系統架構!這章也是本書的結尾章節。最後兩次的總結有濫竽充數之嫌,10月份會拆開本書的章節重塑總結之!

寫在結尾處的話:每天努力一點點,也許不明顯,但終究會有所協助!

10月份開始了,2018年不足100天了,努力吧!

《Effective Objective-C 2.0》讀後總結 之五

相關文章
阿里云产品大规模降价
  • 最高幅度達59%,平均降幅23%
  • 核心產品降價
  • 多地區降價
undefined. /
透過 Discord 與我們聯繫
  • 安全、匿名的群聊,不受干擾
  • 隨時了解活動、活動、新產品等訊息
  • 支持您的所有問題
undefined. /
免費試用
  • 開啟從ECS到大數據的免費試用之旅
  • 只需三步 輕鬆上雲
  • 免費試用ECS t5 1C1G
undefined. /

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.