原创 Xcode開發高效率工具InjectionIII

前端開發及安卓開發等,都自帶有熱重載HotReloading功能:開發時更改代碼後執行保存操作就能實時更新程序,而不需要重新構建或重新啓動應用程序;這大大節省了開發人員的時間; 而反觀Xcode,它並沒有類似的功能; 但有這麼一款插件Inj

原创 iOS Share Extension開發

在使用相冊時,大家應該都用過其分享功能,它可以很方便的分享到各個應用: 那如何讓我們自己開發的App也能出現在這個分享面板中,並接收到圖片數據呢? 這裏就需要用到系統爲我們提供的App Extension了; App Extension

原创 iOS使用fastlane一鍵打包、提交應用

當開發的應用越來越多,或者應用提交的頻率越來越高,就會體會到打包、提交這些重複的工作是多麼枯燥且無聊還耗時;那麼自然就會考慮讓機器幫我們完成這一系列的工作,fastlane無疑是這樣一個理想好用的工具; fastlane初始化 安裝正確

原创 iOS定製應用開發及Apple Business Manager分發

應用開發 定製應用 爲某個組織設計和開發的,你應用的自定義版本 舉個栗子,以下場景均屬於定製應用 定製的UI,例如logo,品牌化等內容 爲其他組織特製的某些功能 爲合作伙伴、客戶、經銷商定製的特性 爲企業員工特製的特性 當你自己的

原创 iOS多個網絡請求同步執行

這裏所說的同步執行是指多個網絡請求按順序執行,但這些請求還是可以在異步線程處理的不會阻塞主線程;首先我們看一個實際的應用場景: 登錄時發起請求A,請求成功後得到返回的用戶信息;根據得到的信息作爲參數再發送網絡請求B;這裏就要求網絡請求B必須

原创 淺談Charles抓包原理

類似Charles這樣的抓包工具,對於高效程序員是必不可少的; 本文不會介紹Charles的安裝及使用,主要是淺顯的探討其抓包原理;Charles的安裝及使用相關內容可以參考以下文章: Charles破解版下載 iOS開發輔助工具-抓包工

原创 iOS集成Sentry進行異常收集

異常捕獲/收集的平臺有很多,我們選用了Sentry;Sentry支持搭建在自己的服務器上(self-hosted),支持多種編程語言,號稱是有超過5萬家公司的100萬名開發人員在使用;Sentry提供了3種類型賬號:Developer,T

原创 細數iOS中的線程同步方案(一)

細數iOS中的線程同步方案(一) 細數iOS中的線程同步方案(二) 多線程安全問題 多個線程可能訪問同一塊資源,比如同一個文件,同一個對象,同一個變量等;當多個線程訪問同一資源時,容易引發數據錯亂和數據安全問題; 如下面這個經典圖所示,線

原创 block底層原理探究(二):內存管理

前篇block底層原理探究(一):捕獲,我們探究了block捕獲外部變量的原理; 如果block捕獲的是對象類型的auto變量,就要涉及到對象的內存管理問題了(對於捕獲的基本數據類型,不用進行內存管理);本篇,我們就來探究block對捕獲

原创 iOS優質技術博客整理

排名不分先後 OneV's Den “喵神”王巍:ObjC 中國組織的發起人和領導者;博客大部分是和Swift相關的; 美團技術團隊 涉及的技術比較廣,內容比較多; 張不壞的博客 bestswifter 李峯峯博

原创 iOS對象release做的那些事

(本文所有內容都是針對64位架構,ARC環境而言) 在iOS中,使用引用計數來管理OC對象的內存: 一個新創建的對象引用計數默認是1,當引用計數減爲0,OC對象就會銷燬,釋放其佔用的內存空間 調用retain會使對象的引用計數+1,調用

原创 基於RunLoop進行線程保活的簡單分析

線程與RunLoop 線程一般一次只能執行一個任務,執行完成後線程就會退出;如果需要一個執行任務後不退出的永駐線程,可以利用RunLoop實現; 利用RunLoop實現線程保活(常駐線程),我們需要明確線程與RunLoop的關係: 線程和

原创 細數iOS中的線程同步方案(二)

細數iOS中的線程同步方案(一) 細數iOS中的線程同步方案(二) NSLock 這個其實就是對pthread_mutex普通互斥鎖的封裝;面向對象,使用起來更方便; - (void)lock; - (void)unlock; - (BO

原创 Effective Objective-C 2.0筆記(五)

第六章 塊(block)與大中樞派發(GCD) block和GCD是當前Objective-C編程的基石; 第37條:理解“塊”這一概念 block與函數指針類似; 在block聲明的範圍內,所有變量都可以被其捕獲; 默認情況下,被blo

原创 iOS開發常用權限彙總

主要總結下以下常用權限的獲取及請求授權用法等(均不考慮iOS8以下系統): 網絡權限 推送權限 定位權限 通訊錄權限 相機權限 相冊權限 網絡權限 使用系統CoreTelephony庫實現網絡權限的獲取及監聽 獲取網絡權限 func