原创 iOS - Block底層解析

Block是iOS開發中一種比較特殊的數據結構,它可以保存一段代碼,在合適的地方再調用,具有語法簡介、回調方便、編程思路清晰、執行效率高等優點,受到衆多猿猿的喜愛。但是Block在使用過程中,如果對Block理解不深刻,容易出現C

原创 SVProgressHUD源碼解讀(2.0.3)

SVProgressHUD是iOS開發中比較常用的一個三方庫,用來在執行耗時操作或者指示用戶操作結果的場合,由於使用簡單,功能豐富,交互友好,被廣泛應用。本文從源碼的角度,解讀一下實現的過程,希望能起到拋磚引玉的作用。 一. 效果

原创 Monad詳解

  最近幾年,函數式編程變得越來越流程,其代碼簡潔、副作用小、維護成本低等特點,使得許多其它的語言也開始支持函數式編程,比如Java 和 C#等。本文主要介紹一下函數式編程中的一個重要概念:Monad。      從定義上看,

原创 ReactiveCocoa源碼解讀(二)

上一篇解讀了ReactiveCocoa的三個重要的類的底層實現,本篇繼續。 一、RACMulticastConnection 1.應用 RACMulticastConnection: 用於當一個信號被多次訂閱時,爲了保證創建信號時

原创 iOS 10 UserNotification框架解析 - 本地通知

iOS 10以前的通知比較雜亂,把本地通知和遠程通知分開了,誕生了許多功能類似的API,很容易讓初學者犯迷糊。而iOS 10的通知把API做了統一,利用獨立的UserNotifications.framework框架來管理通知;並

原创 前端佈局之Flex語法

前端佈局一直是CSS的一個重點應用,然而基於盒子模型的傳統佈局方案,依賴display + position + float 屬性,對於某些特殊的佈局非常不方便,比如:垂直居中就不容易實現。針對這一情況,在2009年,W3C提出了

原创 ReactiveCocoa應用篇(二)

上一篇介紹了ReactiveCocoa的常用類,已經基本滿足項目中的簡單應用要求,但是針對複雜的功能還需要其它的類來協同處理。ReactiveCocoa提供了強大的流程處理功能來解決複雜的問題,包括事件點擊、代理、通知、事件同步和

原创 ReactiveCocoa源碼解讀(一)

本着飲水思源的想法,面對ReactiveCocoa的強大功能,按捺不住心中的好奇心,於是走進其源碼之中,一探ReactiveCocoa的魅力所在。雖然,耳聞其強大功能的核心是:信號,但一直不知道這個信號是如何產生、如何傳遞,又是如

原创 iOS Notification – 遠程通知

本文講解iOS的遠程通知的基本使用,主要包括遠程通知的類型,處理遠程通知的場景,以及遠程通知相關證書的配置等等。 一、APNs簡介         APNs是蘋果公司提供的遠程通知的服務器,當App處於後臺或者沒有運行時,如果後臺

原创 升級Cocoapods引起的Mantle庫找不到的問題及解決方法

年前升級了Cocoapods庫,從0.39升級到了1.2.0-beta版,然後用模擬器和真機測試都是沒有問題的,均可以成功編譯。今天測試人員要測試包,準備archive打包時,卻提示:ld: library not found f

原创 ReactiveCocoa應用篇(一)

作爲函數式編程和響應式編程的代表ReactiveCocoa,自一出世便受到廣大碼農的熱愛,結合MVVM編程模式,不僅能夠方便的處理各種交互事件、降低模塊間的耦合性,還能簡化項目結構,降低閱讀和維護的成本。本文從應用的角度,介紹一下

原创 HTTP協議發展介紹

HTTP協議工作於C/S架構上,是萬維網服務器傳輸超文本到本地客戶端的一種應用層協議,全稱是:Hyper Text Transfer Protocol(超文本傳輸協議),HTTP是基於TCP/IP通信協議來傳遞數據的。HTTP於1

原创 NodeJS服務器篇之簡單靜態文件合併

NodeJS是一個基於Chrome V8引擎的JavaScript運行環境,其使用了事件驅動、異步I/O機制,具有運行速度快,性能優異等特點,非常適合在分佈式設備上運行數據密集型的實時應用。 本文主要介紹一下通過搭建簡單的Node

原创 NSURLConnection從入門到放棄

儘管NSURLConnection已經不建議使用了,iOS 7取而代之的是NSURLSession,但是本文依然打算剖析一下,其中一些思想還是值得學習一下,如果您不用NSURLConnection,並且也不打算嘗試使用,可以跳過本

原创 HTTP協議格式詳解

上一篇介紹了HTTP協議的版本迭代歷史,本篇繼續深入介紹一下HTTP協議的規範,本文主要介紹它的URI、Request、Response、狀態碼等等信息,通過了解這些具體的內容,可以更直觀的理解HTTP的協議格式,以及工作原理。