原创 Cocoapods安裝最新教程--適配OS X EL Capitan 和 ruby-china新域名

使用CocoaPods的必要性? CocoaPods是iOS開發最常用最有名的類庫管理工具了,通過cocoaPods,可以快速方便的導入多第三方開源類庫,比如JSONKit,AFNetWorking等。重要的是,絕大部分有名的開源類庫,都

原创 Swift 4.0 UIButton按鈕防止重複點擊(黑魔法)

按鈕的重複點擊是我們開發中必須要考慮的情況,否則會帶來意想不到的bug,甚至是崩潰。解決方法有很多種,但是要想全局處理防止按鈕重複點擊,最優雅的方法就是利用Runtime在運行時進行方法交換來處理。 實現思路 定義一個屬性關聯的

原创 Swift 4.0 編碼規範,持續更新中...(已更新Swift 5.0)

自Swift 3.0 以來,語言已經比較成熟,用Swift語言來開發iOS App 的開發者越來越多,那麼一份權威而全面的規範就很有必要了。蘋果官方的文檔有時間大家還是多看看,筆者參考官方文檔和各路大神的經驗,寫下了一份基於Swi

原创 swift 4.0中訪問控制private、fileprivate、internal、public、open的區別

Swift 4.0中訪問控制權限由低至高提供了 private,fileprivate,internal,public 和 open 五種。默認的 internal 在絕大部分時候是適用的,但是對於一個嚴格的項目來說,精確的最小化訪問

原创 const static extern 宏 的區別使用

當我們查看一些第三方庫時,經常會看到大牛對 const、static、extern、宏 的區別使用,以及 const 和 static,const 和 extern 的結合使用,究竟爲什麼要這麼用,本文就來探究一下。 宏: 預編譯時

原创 iOS 單元測試簡介

很多開發者都聽說過單元測試,但是在實際開發中我們卻很少使用到單元測試,一般流程規範的大項目一般都會做單元測試,下面主要介紹 Xcode 自帶的 XCTest 測試工具。 單元測試 單元測試(unit testing),是指對軟件中的最

原创 Core Text 原理淺談

iOS 開發中經常會遇到一些文字排版或者圖文混排的需求,在 iOS7 以前一般都使用 CoreText 來處理這樣的需求,iOS7 之後可以使用系統的 TextKit ,TextKit 是對 CoreText 的封裝。 CoreTex

原创 iOS多線程方案之NSOperation詳解

iOS開發中一共有四種多線程方案:Pthreads、NSThread、GCD、NSOperation。 Pthreads:是線程的 POSIX 標準。該標準定義了創建和操縱線程的一整套 API,是基於 C 語言的框架。 NSThre

原创 iOS多線程方案之GCD詳解

iOS開發中一共有四種多線程方案:Pthreads、NSThread、GCD、NSOperation。 Pthreads:是線程的 POSIX 標準。該標準定義了創建和操縱線程的一整套 API,是基於 C 語言的框架。 NSThre

原创 使用CocoaPods創建開源庫和私有庫詳解

筆者看了許多關於使用CocoaPods創建開源庫的文章,大都寫的不盡詳細,尤其是對於從來沒有創建過開源庫的同學,不知道哪個步驟文章沒寫,在驗證 .podspec 文件時就一堆錯誤,一臉懵逼。本文是一篇從零開始創建一個自己的開源庫甚至是

原创 iOS之UITextView實現placeHolder佔位文字的最佳方法

在iOS開發中,UITextField和UITextView是最常用的文本輸入類和文本展示類的控件。不同的是,UITextField中有一個placeholder屬性,可以設置UITextField的佔位文字,可是,Apple沒有給UIT

原创 UIView和CALayer是什麼關係?

UIView和CALayer是什麼關係? 本文主要分享一下UIView和CALayer的關係,在理解視圖原理和麪試方面都能用得到,若有不足之處,歡迎交流。 創建UIView對象時,UIView內部會自動創建一個層(CALayer對象),

原创 Cocoapods安裝最新教程--適配OS X EL Capitan

使用CocoaPods的必要性? CocoaPods是iOS開發最常用最有名的類庫管理工具了,通過cocoaPods,可以快速方便的導入多第三方開源類庫,比如JSONKit,AFNetWorking等。重要的是,絕大部分有名的開源類庫,都

原创 assign weak retain strong copy關鍵字的區別

在iOS開發中定義@property屬性時,經常用到assign、weak、retain、strong、copy等關鍵字。我們經常會考慮在何時應該使用哪個關鍵字,尤其是在面試的時候,經常會被問到這些關鍵字之間的區別,下面詳細和大家探討一下

原创 iOS開發之KVC和KVO原理解析和實例分析

在iOS開發中,蘋果提供了許多機制給我們進行回調,代理,通知,block等。其中KVO(key-value-observing)是一種很實用的監聽回調機制,KVO又基於KVC(key-value-coding)。 1. KVC KVC就