美文网首页
FLEX扩展与yapdatabase\keychain初步了解

FLEX扩展与yapdatabase\keychain初步了解

作者: pretzei | 来源:发表于2017-07-25 21:39 被阅读0次

今天写了两个小东西,都是对FLEX这个强大的debug工具的一个扩展,而且是针对两种数据存储方式的提升
入口处的话只需要在一个类的+load方法时候对FLEXManager进行register,把我们要进行注入的扩展入口加进去(没有具体代码。都在工作机上
首先FLEX是个超强的框架,虽然可能小问题很多,但是代码这种东西嘛,自然是你有多强它就能有多强。FLEX自带对Realm进行视图展示,不过对其他的一些文件格式就没有能够得到很好的数据展示,比如就是我要做的yap和keychain啦
yapdatabase是一个以key进行存储object的数据模型,它原理是对sqlite进行了一层封装。主要操作就是对Yapdatabase shareInstance的三个connection进行两种block操作,connection有分为ui和bk,而block操作分为只读和读写,这就很好的维护了数据的稳定性啦~ 然后在block内有个transaction参数,通过操作transaction来进行key\value的存取。而因为我要做的是能对整个database进行视图展示,所以首先就获得所有的collection,collection可以认为是一种类似于表的东西,甚至可以把每个collection当作一个dictionary进行持久化存取操作~获得所有collection后再取得collection内所有的key,进行视图展示,选择每一个key后都可以获得一个object,然后为了能更好的展示object以及嗯哼偷点懒,用了一个FLEX内的一个controller,它可以对一个object进行很好的ivar\method\description展示。但是呢,FLEX的头文件只暴露了manager,里面的绝大部分类都是私有的,不过这当然面对有黑魔法的oc来说并不是问题,只需要用nsclassforstring就能获取到class然后进行alloc和init了。但是我要调用的这个类好巧不巧只有类方法的初始化,并不能按照习惯性[[class alloc] init],而class默认是没有performselector这个方法的,纠结了一会儿想起来class本身就是一个对象,大概是叫meta class吧,所以在nsclassforstring的结果直接用id指向,这时候就能调用方法了,为了安全起见还加了respondstoselector来预防了一下。不过蛋疼的xcode会提醒你这个selector没有实现过,所以要加一些宏定义。这样yapdatabase的扩展大致就完成了
而keychain项目代码主要是通过uickeychainstore这个库来进行实现的,看了一下核心存储部分,一堆的bridge,都是C呐,所以可见keychain是在corefoundation上进行的处理。存储方式实际上是nsdata,就算是string也是转成nsdata,每次取出也要从nsdata解析出来。具体视图部分逻辑类似。获得keychainstore的service和group,然后遍历所有的key,然后用runtime对点击Object进行黑魔法展示。
yap可以看得出来是对object直接进行存取的一个database,当然可能要加个实现nscopying的前提,对model的支持是很友好的。keychain呢主要是能方便的存取一些简单数据,比如token啊uuid啊(这些往常的都是存userdefault。。
今天还是和往常一样很快的完成了任务然后催着bob给我找事做看到可爱的他为难的样子还是挺有成就的

相关文章

  • FLEX扩展与yapdatabase\keychain初步了解

    今天写了两个小东西,都是对FLEX这个强大的debug工具的一个扩展,而且是针对两种数据存储方式的提升入口处的话只...

  • css3 flex属性

    flex-grow 是扩展比率 flex-shrink 是收缩比率 flex-basis 伸缩基准值 假设flex...

  • YapDataBase

    ## YapDataBase主要的两个特征 * 利用collection/key/value进行存储 * 强大的插...

  • 前端面试题整理二

    CSS 1、垂直居中的方法 文本内容:使用line-height flex布局扩展:flex常用属性1、flex-...

  • iOS逆向工程之KeyChain与Snoop-it

    iOS逆向工程之KeyChain与Snoop-it iOS逆向工程之KeyChain与Snoop-it

  • 2018-05-07

    初步认识Chrome扩展与应用 区别: 扩展: 用于对浏览器功能的增强,强调与浏览器的结合。 应用: 可以不打开浏...

  • 初步接触FLEX布局

    flex布局具有主轴和交叉轴两个概念,这两个轴的位置并不是不会改变的。 flex-dirction属性决定主轴方向...

  • Kotlin初步了解与尝试

    在前不久的Google I/O keynote大会上,Kotlin被安卓团队宣布成为新的一级开发语言(first-...

  • 初步了解

    什么是css语法?CSS (Cascading Style Sheets) 层叠样式表,用来编辑 HTML中元素...

  • 【学习资料整理】30分钟掌握Flex布局

    了解flex基本语法阮一峰——Flex 布局教程:语法篇 flex实例布局阮一峰——Flex 布局教程:实例篇 f...

网友评论

      本文标题:FLEX扩展与yapdatabase\keychain初步了解

      本文链接:https://www.haomeiwen.com/subject/zwugkxtx.html