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. PageRank算法和谷歌搜索讲解

    PageRank算法和谷歌搜索讲解 吴裕雄 PageRank算法实际上就是Google使用它来计算每个网页价值的算法. Google每次的搜索结果都有成百上千万甚至上亿个相关的查询网页链接.如果将所有 ...

  2. vuex this.$store.state.属性和mapState的属性中的一点点区别

    做泰康公众号的项目时候有一个需求创建公众号的时候后台有一个社区id提供给后台展现人员和部门,在群发消息时候也要给后台一个社区id只不过获取社区的id接口和上一个不是一样的,本来在页面中写了两个sele ...

  3. 数组的es6新方法

    1.数组去重 var  changeReArr=(arr)=>{ return Array.from(new Set([1,2,2,3,5,4,5]))//利用set将[1,2,2,3,5,4, ...

  4. requests库的文档--快速上手

    快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其假设你已经安装了 Requests.如果还没有,去安装一节看看吧. 首先,确认一下: Requests 已安装 Req ...

  5. SpringBoot SpringSession redis SESSION

    号称无缝整合httpsession 共享, 但注意如果存在第三方框架,例如SESSION并发控制,这个是需要自己重写session名单的. 关于redis session 共享 的session并发控 ...

  6. 第七篇:Jmeter连接MySQL的测试

    .准备一个有数据表格的MySQL数据库: 2.在测试计划面板上点击浏览按钮,把你的JDBC驱动添加进来: mysql-connector-java-5.1.26-bin.jar 3.添加一个线程组-- ...

  7. PHP ActiveRecord demo栗子中 关于类名 的问题

    问题: ActiveRecord如何将单个类名与表名相关联? 我昨天才发现了ActiveRecord,很奇妙的php数据库框架. 但是,我仍然对以下工作感到困惑: 1.下面这个Person Model ...

  8. centos 7.2 安装域名服务器(bind9.9 集群--主从架构),私有域名服务器+缓存

    1.安装组件 yum install bind bind-utils -y 2.启动域名服务 service named start chkconfig named on ss -unlt |grep ...

  9. 江西财经大学第一届程序设计竞赛 H题 求大数的阶乘

    链接:https://www.nowcoder.com/acm/contest/115/H 来源:牛客网 晚上,小P喜欢在寝室里一个个静静的学习或者思考,享受自由自在的单身生活. 他总是能从所学的知识 ...

  10. Flask之before_request、after_request

    1.@app.before_request在请求(request)|在视图函数   之前做出响应 解决所有问题 from flask import Flask from flask import re ...