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/