原创 詳解Swift中的錯誤處理

前言 任何代碼都會發生錯誤,這些錯誤有些是可以補救的,有些則只能讓程序崩潰。良好的錯誤處理能夠讓你的代碼健壯性提高,提高程序的穩定性。 本文的Swift版本:Swift 3 Objective C 返回nil 如果出錯了,就返回空

原创 React Native開發之快速入門React

前言 這篇文章,是接着之前的一篇入門文章寫的(雖然已經過去大半年了),本文的受衆仍然是React小白,熟悉React的同學可以不看了。上一篇文章鏈接: 爲React Native開發寫的JS和React入門知識 上一篇文章主要

原创 Objective C block背後的黑魔法

前言 block在Objective C開發中應用非常廣泛,我們知道block會捕獲外部對象,也知道使用block要防止循環引用。 “知其然而不知其所以然”是一件很痛苦的事情,那麼block這套機制在OC中是如何實現的呢?本文通過

原创 深入理解Symbol

前言 符號(Symbol)是日常開發中經常接觸的一個概念,雖然日常開發中直接應用的場景比較少,但符號編譯期和運行時都扮演了重要的角色。 符號是什麼 維基百科的定義 A symbol in computer programming

原创 性能深度分析之SystemTrace

前言 App中大多數的性能指標都和時間相關,如啓動速度,列表滑動FPS,頁面打開耗時等等。爲了優化這些指標,我們需要了解時間都消耗在哪裏。 通常我們會打開Time Profiler,通過聚合Call Stack來分析和優化代碼耗時

原创 GCD精講(Swift 3&4)

前言 我們首先來看一張圖: 我覺得這張動圖很好的詮釋了《把一個線程用到死的》核心價值觀。 很多程序都有一個主線程。對於iOS/MacOS開發來說,這個線程就是UI線程,在這個線程上會做一些用戶交互/渲染相關的事情。把過多的任務放

原创 優雅的開發Swift和Objective C混編的Framework

前言 爲什麼要寫這樣一篇文章,因爲昨天和一個朋友討論到Swift和Objective C如何混合開發Framework,中途發現了很多有意思的坑。 用Swift封裝OC的庫是一件比較常見的事情,畢竟對於大多數公司來說,老的代碼都是

原创 Swift進階之內存模型和方法調度

前言 Apple今年推出了Swift3.0,較2.3來說,3.0是一次重大的升級。關於這次更新,在這裏都可以找到,最主要的還是提高了Swift的性能,優化了Swift API的設計(命名)規範。 前段時間對之前寫的一個項目Imag

原创 iOS自動化測試的那些乾貨

前言 如果有測試大佬發現內容不對,歡迎指正,我會及時修改。 大多數的iOS App(沒有持續集成)迭代流程是這樣的 也就是說,測試是發佈之前的最後一道關卡。如果bug不能在測試中發現,那麼bug 就會抵達用戶,所以測試的完

原创 iOS開發 - 在狀態欄顯示FPS,CPU和內存信息

前言 今天在用Instruments分析App的時候,總感覺看起來不太直觀。到Github上找了找,發現幾乎都是隻顯示FPS的,而且效果也不是我想要的。於是就自己寫了個 源碼地址 LHPerformanceStatusBar

原创 Swift Playground精講

Playground是啥? Playground是一個強大的工具。對於Swift初學者來說,它簡單易用,可以實時預覽代碼效果,非常適合學習Swift這門語言。在日常開發中,playground可以進行快速的原型開發和試錯。當然,

原创 iOS開發中常用的那些工具

工欲善其事,必先利其器。 列表 XCode 無須多說 Instruments 性能分析工具:卡頓,內存,網絡,數據存儲等等 xcodebuild and xcrun 命令行工具用來腳本打包和測試 synx 把XCode工程

原创 消息轉發機制與Aspects源碼解析

前言 最近在搞重構相關的事情,遇到了不少這樣的場景: 進入一個界面,在viewWillAppear:的時候做相應判斷,如果滿足條件則執行對應代碼。 這類業務有一個特點,業務內容是對應整個App的,與對應的ViewControl

原创 聊聊應用內購買

前言 上一份工作中,斷斷續續開發和維護了兩年左右的內購,換工作後短期內應該不會做相關業務了,所以趁着記憶還是“熱乎”的,寫下這篇文章。 希望讀者通過閱讀本文能夠解決一些問題或者找到一些產品靈感,本文主要包括三個方面: 內購的基本概念

原创 抖音 & 頭條內推

抖音 & 頭條內推加我微信: 招聘官網:https://job.bytedance.com