首先,你需要明確地通知AVAudioSession你允許聲音可以被輸出到藍牙設(shè)備,通過setCategory設(shè)置AVAudioSession *session = [AVAu...
首先,你需要明確地通知AVAudioSession你允許聲音可以被輸出到藍牙設(shè)備,通過setCategory設(shè)置AVAudioSession *session = [AVAu...
分類的本質(zhì) 方式一通過clang方式探究通過clang -rewrite-objc xxxx.m -o xxxx.cpp,查看生成的xxxx.cpp??梢钥吹?從上面的代碼看...
上一篇文章我們分析了dyld跟objc的關(guān)聯(lián)中,已經(jīng)研究到了_dyld_objc_notify_register中會調(diào)用到map_images、load_images,并且對...
我們在之前的探究過程中發(fā)現(xiàn)dyld加載中會調(diào)用到_objc_init,這篇文章我們從_objc_init開始研究其具體做了什么。 _objc_init源碼 從_objc_in...
前言 我們知道,objective-c中我們調(diào)用方法之后,底層會對方法進行緩存,讓后面再調(diào)用更加快捷。今天我們主要研究是在方法沒有緩存時,底層的查找流程。 調(diào)試分析 我們首先...
cache的數(shù)據(jù)結(jié)構(gòu) 我們需要知道cache中存儲的到底是什么?我們通過objc源碼分析cache_t的結(jié)構(gòu),發(fā)現(xiàn)其根據(jù)架構(gòu)處理分成了三種情況,分別為: CACHE_MASK...
題一 打印結(jié)果: 首先傳入?yún)?shù)pClass,是LGPerson類。lgInstanceMethod_classToMetaclass方法中,pClass為LGPerson類,...
對象、類、元類、根元類 對象是類的實例,對象是以類為模版來創(chuàng)建的。類的實質(zhì)上也是一個對象,類是元類的實例對象。類對象在內(nèi)存中只有一份。元類是系統(tǒng)管理的的,定義和創(chuàng)建都是自動由...
了解對象 Objective-C是一門面向?qū)ο缶幊陶Z言。對象是什么,我們這篇文章講的isa和對象又有什么樣的關(guān)系呢?帶著疑問我們可以去看看蘋果開源源碼。在其中找到了對obje...
什么是內(nèi)存對齊 內(nèi)存對齊是一種在計算機內(nèi)存中排列數(shù)據(jù)、訪問數(shù)據(jù)的一種方式。它包含基本數(shù)據(jù)對齊和結(jié)構(gòu)體數(shù)據(jù)對齊 。 內(nèi)存對齊規(guī)則 數(shù)據(jù)成員對齊規(guī)則:首個數(shù)據(jù)成員是在偏移為 0 ...
Markdown是一種純文本格式的標(biāo)記語言。通過簡單的標(biāo)記語法,它可以使普通文本內(nèi)容具有一定的格式。 相比WYSIWYG編輯器 優(yōu)點:1、因為是純文本,所以只要支持Markd...
1,效果如 2,設(shè)置info.plist info.plist下檢測是否設(shè)置平臺Scheme,對于需要配置的平臺,如果沒有配置,將無法正常跳轉(zhuǎn)平臺客戶端,因此需要配置Sche...
WebViewJavascriptBridge 鏈接:https://github.com/marcuswestin/WebViewJavascriptBridge iOS端...