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的更多相关文章

  1. iOS可视化动态绘制连通图

    上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...

  2. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  3. 【疯狂造轮子-iOS】JSON转Model系列之一

    [疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...

  4. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  5. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  6. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  7. 告别被拒,如何提升iOS审核通过率(上篇)

    iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...

  8. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  9. Summary of Critical and Exploitable iOS Vulnerabilities in 2016

    Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...

随机推荐

  1. IT蓝豹强烈推荐:符合1-2年工作经验,开发中的难点及相关优化:

    IT蓝豹强烈推荐:符合1-2年工作经验,开发中的难点及相关优化: IT蓝豹 ------------------> sqlite数据库版本升级 1.sqlite升级步骤: 1.自己写一个类继承自 ...

  2. eclipse git 分享项目到GitHub上

    先在github上创建仓库

  3. JAVA语言 第三周

    第三周,跟随菜鸟教程学习了一些简单的JAVA语法,包括数据类型.变量.修饰符.运算符.循环.数组.继承. 这些在结构中与c++相似,但语法有些不同.在这些方面,我做了一些总结. 开学测试那张卷子,被我 ...

  4. JavaScript数组方法大全(推荐)

    原网址:http://www.jb51.net/article/87930.htm 数组在笔试中经常会出现的面试题,javascript中的数组与其他语言中的数组有些不同,为了方便之后数组的方法学习, ...

  5. http协议解析过程

    HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. 基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤: 1)     建立连接:客 ...

  6. 虚拟机 安装 CentOS7

    初次接触CentOS,最好是在虚拟机中安装: 因为CentOS的安装选项有很多,不理解的情况下千万不要在物理机上尝试: 不然可能出现这种情况:安装好以后,只有黑色的屏幕,只能在里面敲命令:这对于新手来 ...

  7. mysql limit语句

    [mysql limit语句] 代码: SELECT * FROM table LIMIT 2 OFFSET 1; 比如这个SQL ,limit后面跟的是2条数据,offset后面是从第1条开始读取. ...

  8. Fiddler抓包域名过滤(转载)

    转载自 http://www.cnblogs.com/111testing/p/6440480.html Fiddler抓包域名过滤 我们在用Fiddler抓包的时候会抓到很多不需要的数据包,我们怎样 ...

  9. 修改Eclipse主题与Eclipse中使用SVN

    自从开始IDEA后,很久没用eclipse了,有位老同学问我eclipse中如何使用SVN?我就打开eclipse试试,白光太刺眼了~作为强迫症修改下主题.结果如下: 修改完编辑的背景颜色,并没有很好 ...

  10. C语言标准io函数总结

    转自:http://blog.csdn.net/sun_top/article/details/4235992本来是在vscode上用markdown排好版的,结果复制到这上面就变了形,无奈. 函数列 ...