原创 快速瞭解iOS單元測試

XCTestCase 進入xxUITests.m文件,會看到繼承自XCTestCase:Xcode集成的一套單元測試框架 XCTestCase The primary class for defining test cases, test

原创 最新cocoaPods安裝、升級、卸載及刪除庫命令(持續更新)

從開始開發iOS就一直在用cocoaPods,其中也遇到了不少問題,下面的是關於cocoaPods的一些命令,在這裏Mark下。 一、命令行安裝 $ sudo gem update --system // 先更新gem,已切換到最新地址

原创 iOS應用簽名原理--數字簽名?代碼簽名?雙層代碼簽名?

數字簽名 數字簽名(又稱公鑰數字簽名、電子簽章等)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑑別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。 數字簽名,就是

原创 多線程原理--NSOperation、NSOperationQueue

NSOperation類是iOS2.0推出的,通過NSThread實現的,但是效率一般。從iOS4推出GCD時又重寫了NSOperation和NSOperationQueue,NSOperation和NSOperationQueue分別

原创 多線程原理--瞭解GCD

GCD 簡介 在iOS 4版本之後引用GCD。GCD全稱是 Grand Central Dispatch,純 C 語言,提供了非常多強大的函數。GCD是蘋果公司爲多核的並行運算提出的解決方案,會自動利用更多的CPU內核(比如雙核、四核),

原创 React簡述

React是Facebook在2013年推出的前段框架。React不是一個MVC框架,React是一個構造可組合式用戶界面的庫。它鼓勵創建可重用的UI組件會隨着時間而改變的數據。React採用不同的方法,當組件第一次初始化時,rende

原创 自定義NSOperation子類-圖片下載器

研究過NSOperation後,想通過實戰更好的理解NSOperation,適用於對下載圖片不頻繁的項目,免得爲了一個小需求而導入比較重的框架。Demo(直通車)主要利用自定義NSOperation子類,同時借鑑了AFNetworkin

原创 多線程原理--GCD源碼分析

閱讀源碼是枯燥的,可能暫時對我們的工作沒什麼幫助,現在但是作爲一個有一定開發經驗的開發人員而言,這一步是必須要走的;可能是受到了身邊同事、同行的影響,看別人在讀源碼也跟着讀源碼,或者是開發中遇到了瓶頸,亦或者是開發不再侷限於業務的開發,需

原创 KVO底層原理—利用Runtime自定義KVO

KVO:Key-value observer,也就是鍵值觀察,是Objective-C對觀察者模式的實現,每當被觀察對象的某個屬性值發生改變時,註冊的觀察者便能得到通知。 當然想了解KVO,還要先對KVC有所瞭解:KVC底層原理,本文利

原创 Category實現原理--源碼分析

在Objective-C 2.0中新增的Category可以動態地爲已有類添加新的對象方法、類方法、協議、和屬性。注:這裏的屬性只會生成set/get方法的聲明,並不會自動生成成員變量(分類是在運行時纔去加載,對象的內存佈局已經確定,無

原创 KVC底層原理--YYModel簡述

YYModel的作用就是字典轉模型,在瞭解YYModel前,我們先了解下KVC的知識。 KVC:也稱之鍵值編碼,是一種採用了NSKeyValueCoding協議的對象(直接或間接繼承NSObject時會爲基本方法提供默認實現)通過間接訪

原创 Xcode無線調試

Xcode無線調試是WWDC2017的一個新功能,首先要滿足iOS11以上,Xcode9以上; 首先,把iOS11以上的iOS設備連接到Xcode9,shift + Commond + 2快速打開設備列表,或者在菜單中打開wi

原创 iOS中實例變量、成員變量和屬性變量的區別

作爲iOS開發,會經常聽到成員變量、實例變量和屬性;那他們有什麼區別嗎? 實例變量 實例變量: class類進行實例化出來的對象爲實例對象;比如: Person *p = [Person new]; 成員變量 成員變量: 在{ }中所聲明

原创 Runloop底層原理--源碼分析

什麼是Runloop? Runloop不僅僅是一個運行循環(do-while循環),也是提供了一個入口函數的對象,消息機制處理模式。運行循環從兩種不同類型的源接收事件。 輸入源提供異步事件,通常是來自另一個線程或來自不同應用程序的消息。定

原创 Runtime底層原理總結--反彙編分析消息轉發

消息轉發:發送一個消息,也就是sel查找imp,當沒有找到imp,接下來進入動態方法解析,如果開發者並沒有處理,會進入消息轉發。 消息轉發 前幾篇文章介紹了Runtime底層原理和動態方法解析總結 ,我們知道如果前面的動態方法解析也沒