原创 談談非對稱加密、數字簽名和數字證書

很多的密碼算法都是公開的,所以密鑰的複雜度決定了密文的安全性。而一個足夠複雜的密鑰作爲通信最關鍵的部分,需要解決在傳輸的過程中被截獲的問題。 密碼、明文、密文 密碼:是一種用於加密或者解密的算法。 明文:加密之前的原始數據 密文:明文通

原创 談談對多線程和GCD的理解 多線程(GCD)

多線程(GCD) GCD是異步執行任務的技術之一,通過Dispatch Queue來控制任務的執行,線程管理由系統實現,比以前更加有效率。 1.多線程編程 多線程原理 當mac或者iPhone打開一個app的時候,首先就將包含在應用程序

原创 對象間數據傳遞方式的選型 用什麼傳? 傳什麼? 怎麼傳?

用什麼傳? delegate和block的選型 一、爲什麼要選型而不是開發各自選擇? 1. 靈活性 爲什麼要限制靈活性?在任何時候開發都可以各顯神通嗎? 在架構思維上,限制靈活性的原因往往是想要換取可維護性。 當不同的技術充斥在代碼中的時候

原创 JavaScript 對作用域的理解

全局作用域 在全局作用域中定義的變量,在整個上下文中都是可以訪問的。 函數作用域 在函數作用域中定義的變量,只能在函數中被訪問 作用域鏈 //全局環境下的全局變量a1 var a1 = 5; //全局環境下的方法funcName1 func

原创 對象間數據傳遞方式的選型

用什麼傳? delegate和block的選型 一、爲什麼要選型而不是開發各自選擇? 1. 靈活性 爲什麼要限制靈活性?在任何時候開發都可以各顯神通嗎? 在架構思維上,限制靈活性的原因往往是想要換取可維護性。 當不同的技術充斥在代碼中的時候

原创 軟件開發團隊協作中遇到的問題

一、提交測試後的代碼改動導致線上BUG 在迭代開發之前,應該更深入瞭解需求與更仔細的設計技術方案,爭取在提測前一次做對。 在提測後遇到需要更改的部分時,應該暴露問題,組內進行技術與影響範圍評估,如果不必要,則在下次版本優化,必要則郵件提交

原创 iOS運行時消息解析流程

第一步: 動態方法解析,向當前類發送resolveInstanceMethod:信號,檢查是否有動態的向當前類添加此方法。 第二步: 快速消息轉發,檢查被調用的類是否實現forwardingTargetForSelector:方法,如果實

原创 軟件開發數據解析思路

標準的數據解析: 什麼是ResponseModel:對服務端下發數據的全量解析,使用第三方庫MJExtension可以保證存在ResponseModel中的屬性都是正確的值。 什麼是BuisnessModel:面向業務層的Model,裏面

原创 iOS知識點整理 [基礎篇]

基礎 線程、進程 進程:進程是資源(CPU、內存等)分配的基本單位,它是程序執行時的一個實例。程序運行時系統就會創建一個進程,併爲它分配資源,然後把該進程放入進程就緒隊列,進程調度器選中它的時候就會爲它分配CPU時間,程序開始真正運行。 線

原创 對作用域的理解

全局作用域 在全局作用域中定義的變量,在整個上下文中都是可以訪問的。 函數作用域 在函數作用域中定義的變量,只能在函數中被訪問 作用域鏈 //全局環境下的全局變量a1 var a1 = 5; //全局環境下的方法funcName1 func

原创 談談對多線程和GCD的理解

多線程(GCD) GCD是異步執行任務的技術之一,通過Dispatch Queue來控制任務的執行,線程管理由系統實現,比以前更加有效率。 1.多線程編程 多線程原理 當mac或者iPhone打開一個app的時候,首先就將包含在應用程序

原创 iOS內存管理理解

在Build Phases -> Compile Sources -> 對應的文件加上-fno-objc-arc的編譯參數可以啓用MRC模式 1.簡介 1.1 內存管理的思考方式 自己生成的對象,自己持有 非自己生成的對象,自己也能持有(

原创 談談證書與https的通信過程

密碼、明文、密文 密碼:計算機術語『密碼 cipher』是一種用於加密或者解密的算法。 明文(plaintext):加密之前的原始數據 密文(ciphertext):明文通過密碼(cipher)運算後得到的結果成爲密文。 密鑰 一個使用密碼

原创 Git學習之思維導圖

用思維導圖的形式學習Git,本文只是整理了git快速使用的導圖,如果想要更深入的理解git,或者完成更加複雜的操作,需要系統性的學習。 注:思維導圖的最後是終端命令,由於字體的關係--連成一起,讀者看到長的-其實就是-- 在使用git前