iOS.FBTweak
FBTweak的源码分析
1. FBTweak提供了以下功能
A): 可以动态的修改某个变量的值,这些变量的类型包括: ...
B): 可以以plist的形式将Tweak以key-value的形式进行导出
2. FBTweak中的类
2.1 FBTweak 类
类FBTweak:代表唯一的命名的tweak(tweak: 微调)。
2.2 FBTweakValue 类
typedef id FBTweakValue;
代表一个Tweak的可能的值。
2.3 FBTweakObserver (@protocol)
FBTweakObserver: 代表Tweak的观察者。
2.4 FBTweakCategory 类
代表Tweak的类别,包含着不同的FBTweakCollection对象。
2.5 FBTweakCollection 类
代表Tweak的集合,包含着不同的Tweak对象。
2.6 FBTweakInline.h/m FBTweakInlineInternal.h
定义和实现对外暴露的Macro:
FBTweakInline FBTweakValue FBTweakBind FBTweakAction
2.7 FBTweakShakeWindow 类
当摇动设备时显示FBTweakViewController, 前提是App的RootWindow必须是该类的对象。
2.8 FBTweakStore 类
单例。存储FBTweakCategory对象
2.9 _FBTweakBindObserver 类
内部类。代表Tweak的观察者。
2.10 UI相关的类
FBTweakViewController
_FBTweakCategoryViewController
_FBTweakCollectionViewController
_FBTweakTableViewCell (需要修改)
3. 从FBTweak Project中 学到点
参见 Todo
Reference
1. Facebook Tweaks with Swift Tutorial
http://www.raywenderlich.com/80970/facebook-tweaks-swift-tutorial
TODO
1. OSAtomicTestAndSetBarrier()
2. Dl_info dladdr()
usr/include目录下的的各种头文件的学习。
例如: mach-o/loader.h
3. _Generic
4. __attribute__((section (FBTweakSegmentName "," FBTweakSectionName)))
A) 关于__attribute__中section部分的一些了解
http://blog.csdn.net/sadshen/article/details/9419267
B) 性能优化,要懂点编译原理
http://laoar.net/blog/2014/06/24/ldscript/ (AAAA)
C) Attributes in Clang
http://clang.llvm.org/docs/AttributeReference.html
D)
http://www.rowleydownload.co.uk/arm/documentation/index.htm?http://www.rowleydownload.co.uk/arm/documentation/ide_section_placement.htm
5. ld
man ld
6. Code Block Evaluation C Extension
http://cocoa-dom.tumblr.com/post/56517731293/new-thing-i-do-in-code
http://nshipster.com/new-years-2014/
7. Default Values with GNU-style Ternary ?:
http://nshipster.com/new-years-2014/
iOS.FBTweak的更多相关文章
- iOS可视化动态绘制连通图
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- 告别被拒,如何提升iOS审核通过率(上篇)
iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- Summary of Critical and Exploitable iOS Vulnerabilities in 2016
Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...
随机推荐
- 升级tensorflow1.0到1.3,报错ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory Failed to load the native TensorFlow runtime.
先定位问题,发现在 /usr/local/cuda/include/ /usr/local/cuda/lib64/ 下面只有 libcudnn.so.5 因此,只要下载cudnn6.*版本的文件分别覆 ...
- idea 设置 转自 https://www.cnblogs.com/jajian/p/8136672.html
前面已经介绍过Settings上中部分,接下来继续剩余的部分 IntelliJ IDEA(四) :Settings(上) IntelliJ IDEA(五) :Settings(中) 0|1一.Buil ...
- 面向对象程序设计(Java)本学期课程改革说明
1.教学方式采用反转课堂教学法,学生课前完成知识的学习,课堂是师生之间.学生之间互动的场所,包括答疑解惑.知识的运用技巧探讨等,教师的课堂责任是理解学生的问题和引导学生去运用知识. 2.为更好地执行反 ...
- python-ceilometerclient命令行(终结)
ceilometerclient入口 工程ceilometerclient shell.py中的main方法 ceilometerclient目录 --ceilometerclient --commo ...
- Web前端js下载流文件
前端下载文件大概有以下种: 1)a标签链接下载 <a href="url">点击链接下载</a> 2)表单form提交下载 var form = $(&qu ...
- metasploit framework(一):基本使用
它位于/usr/share/metasploit-framework 进入到modules目录,有六大模块 exploits:系统漏洞利用的流程,对系统漏洞注入一些特定的代码,使其覆盖程序执行寄存器, ...
- 启动Tomcat的小细节--MyEclipse
1.先停掉Tomcat 2.然后再Redeploy项目 3.然后再启动Tomcat. 这样的好处是 代码彻底编译
- JavaScript 中this的实现原理
学懂 JavaScript 言语,一个标志就是了解下面两种写法,或许有不一样的成果. <blockquote "=""> var obj = { foo: f ...
- matomo 开源网站分析平台
1.安装PHP https://www.jianshu.com/p/8d54a401ec06 yum remove php* yum -y install epel-release rpm -Uvh ...
- jakson
Java下常见的Json类库有Gson.JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的J ...