今天寫了兩個(gè)小東西,都是對(duì)FLEX這個(gè)強(qiáng)大的debug工具的一個(gè)擴(kuò)展,而且是針對(duì)兩種數(shù)據(jù)存儲(chǔ)方式的提升
入口處的話只需要在一個(gè)類的+load方法時(shí)候?qū)LEXManager進(jìn)行register,把我們要進(jìn)行注入的擴(kuò)展入口加進(jìn)去(沒有具體代碼。都在工作機(jī)上
首先FLEX是個(gè)超強(qiáng)的框架,雖然可能小問題很多,但是代碼這種東西嘛,自然是你有多強(qiáng)它就能有多強(qiáng)。FLEX自帶對(duì)Realm進(jìn)行視圖展示,不過對(duì)其他的一些文件格式就沒有能夠得到很好的數(shù)據(jù)展示,比如就是我要做的yap和keychain啦
yapdatabase是一個(gè)以key進(jìn)行存儲(chǔ)object的數(shù)據(jù)模型,它原理是對(duì)sqlite進(jìn)行了一層封裝。主要操作就是對(duì)Yapdatabase shareInstance的三個(gè)connection進(jìn)行兩種block操作,connection有分為ui和bk,而block操作分為只讀和讀寫,這就很好的維護(hù)了數(shù)據(jù)的穩(wěn)定性啦~ 然后在block內(nèi)有個(gè)transaction參數(shù),通過操作transaction來進(jìn)行key\value的存取。而因?yàn)槲乙龅氖悄軐?duì)整個(gè)database進(jìn)行視圖展示,所以首先就獲得所有的collection,collection可以認(rèn)為是一種類似于表的東西,甚至可以把每個(gè)collection當(dāng)作一個(gè)dictionary進(jìn)行持久化存取操作~獲得所有collection后再取得collection內(nèi)所有的key,進(jìn)行視圖展示,選擇每一個(gè)key后都可以獲得一個(gè)object,然后為了能更好的展示object以及嗯哼偷點(diǎn)懶,用了一個(gè)FLEX內(nèi)的一個(gè)controller,它可以對(duì)一個(gè)object進(jìn)行很好的ivar\method\description展示。但是呢,F(xiàn)LEX的頭文件只暴露了manager,里面的絕大部分類都是私有的,不過這當(dāng)然面對(duì)有黑魔法的oc來說并不是問題,只需要用nsclassforstring就能獲取到class然后進(jìn)行alloc和init了。但是我要調(diào)用的這個(gè)類好巧不巧只有類方法的初始化,并不能按照習(xí)慣性[[class alloc] init],而class默認(rèn)是沒有performselector這個(gè)方法的,糾結(jié)了一會(huì)兒想起來class本身就是一個(gè)對(duì)象,大概是叫meta class吧,所以在nsclassforstring的結(jié)果直接用id指向,這時(shí)候就能調(diào)用方法了,為了安全起見還加了respondstoselector來預(yù)防了一下。不過蛋疼的xcode會(huì)提醒你這個(gè)selector沒有實(shí)現(xiàn)過,所以要加一些宏定義。這樣yapdatabase的擴(kuò)展大致就完成了
而keychain項(xiàng)目代碼主要是通過uickeychainstore這個(gè)庫來進(jìn)行實(shí)現(xiàn)的,看了一下核心存儲(chǔ)部分,一堆的bridge,都是C吶,所以可見keychain是在corefoundation上進(jìn)行的處理。存儲(chǔ)方式實(shí)際上是nsdata,就算是string也是轉(zhuǎn)成nsdata,每次取出也要從nsdata解析出來。具體視圖部分邏輯類似。獲得keychainstore的service和group,然后遍歷所有的key,然后用runtime對(duì)點(diǎn)擊Object進(jìn)行黑魔法展示。
yap可以看得出來是對(duì)object直接進(jìn)行存取的一個(gè)database,當(dāng)然可能要加個(gè)實(shí)現(xiàn)nscopying的前提,對(duì)model的支持是很友好的。keychain呢主要是能方便的存取一些簡單數(shù)據(jù),比如token啊uuid?。ㄟ@些往常的都是存userdefault。。
今天還是和往常一樣很快的完成了任務(wù)然后催著bob給我找事做看到可愛的他為難的樣子還是挺有成就的
FLEX擴(kuò)展與yapdatabase\keychain初步了解
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
- 經(jīng)常會(huì)聽到有人說,人長大以后會(huì)變成自己最討厭的那種人。從心理學(xué)的解釋來看,我們內(nèi)心是拒絕變成最討厭的那種人的。 可...
- 我是日記星球125號(hào)星寶寶吳翊靈,正在參加日記星球訓(xùn)練,這是我的第184篇原創(chuàng)日記。你看或不看,我都在寫,你寫或不...