原创 IOS底層原理 -5.運行時(1)
OC是一種動態性比較強的語言,所有的函數調用都是基於消息機制;簡介參照: 文章目錄1. isa指針1.1 簡述1.2 在看isa之前先熟悉兩個知識點`位域`和`共用體union`1.3 `isa`結構體的成員的含義:1.4 i
原创 IOS底層原理 -7.多線程
文章目錄1. iOS中多線程方案2. GCD 同步,異步,串行,並行2.1 從一到面試題入手認識下GCD:2.2 多線程易混淆的名詞2.3 面試題解析3 多人線程與runloop3.1 面試題13.2 面試題24 隊列組5 線程安
原创 iOS底層原理-8.卡頓及優化
文章目錄1. 卡頓的原因2. 卡頓優化3.卡頓的檢測 1. 卡頓的原因 GPU的渲染是通過cpu計算好的結果給GPU來進行渲染的,每一幀的畫面都得經過CPU計算然後渲染到GPU,在CPU計算的時候GPU就可能出現大量的等待時間;
原创 iOS底層原理-8.內存管理
文章目錄1. NSTimer,CADisplayLink 使用注意事項2. NSProxy3. NSTimer 底層研究 -dispatch_source_t timer4. target point4.1 iOS中內存分佈(下
原创 WebRTC系列 -- iOS 視頻採集
文章目錄1. 採集1.1 採集控制1.2 採集輸出1.3 其他主要接口調用2. 編碼 `VideoStreamEncoder`類2.1 主要構造過程2.1 編碼主要流程 1. 採集 1.1 採集控制 webrtc 相機的初始化及
原创 IOS底層原理 -6.runloop
文章目錄1. 簡介2. Runloop 對象獲取3. RunLoop 運行邏輯3.1 RunLoop 調用過程3.2 源碼簡介3.3 對timer的影響4 子線程中對NSTimer的影響4.1 子線程如何使用NSTimer,通過上
原创 oc 運行時
##1. runtime ## 詳細描述 一、runtime簡介 1.示例: 概念綜述: 消息傳遞(對象消息傳遞):對象消息傳遞是一種動態特性,既接收器和接收器中被調用的方法是在運行時確定的。 消息傳遞表達式:包含消息和接收器,
原创 xcode6和xcode5區別
一. 工程創建 xcode 5 創建的工程 有四個目錄 如圖 1: Framework 中存放有常用的框架 xcode5 是不會自動導入框架的 xcode 6 中有一個啓動LunchScreen.xid (*xcode
原创 歡迎使用CSDN-markdown編輯器
歡迎使用Markdown編輯器寫博客 本Markdown編輯器使用StackEdit修改而來,用它寫博客,將會帶來全新的體驗哦: Markdown和擴展Markdown簡潔的語法 代碼塊高亮 圖片鏈接和圖片上傳 LaTex數學公
原创 UIWindow
步驟 在加載完成info.plist 的時候或進行判斷是否,設置了main,如果沒有就需要自動手動創建; 創建窗口的實例化對象, self.window = [[UIWindow alloc]initWithFrame:[U
原创 二. UIApplication
什麼是UIApplication 是應用程序的象徵 每一個應用都有自己的UIApplication單例對象 通過以下方法可以獲單例對象 一個ios程序啓動後創建後的第一個UIAlication 對象就是他的對象; [UIAl
原创 ios swift 測試框架翻譯之Quick例子和一ArrangeActAssert
XCTest高效測試:Arrange, Act, 和 Assert 無論你是使用XCTest, Quick或者其他的一些測試框架,你都能通過下面簡單的模式寫出高效的單元測試: 1. Arrange
原创 ios swift 測試框架翻譯之Quick例子和一組例子的有序測試
Quick使用一種特殊的語法去明確這個例子和一組例子。 在使用XCTest進行高效的測試:有序,行爲和斷言時,我們知道一個好的測試方法名是非常重要的–當這個測試是一個失敗的開始的時候,這個測試用一個最好的方式讓我們決定要修改應用的
原创 WebRTC系列 -- iOS 視頻播放
視頻播放渲染的核心文件(webrtc_video_engine.cc): 在WebRtcVideoReceiveStream的RecreateWebRtcVideoStream()函數中創建了webrtc::VideoReceiv
原创 IOS底層原理 -5.運行時(2)
文章目錄1. 面試題:isKindClass和isMemberOfClass面試題:類的底層原理和方法調用原理1. 爲什麼可以輸出?2. 輸出爲什麼是viewController中的? 1. 面試題:isKindClass和isM