New Year

* 又从家来了深圳; * 一年一年; * 记忆如刀刻般清晰; * 新年,希望有大的突破。…

iOS模块化开发研究

看了 Limboy 和 Casa 对 iOS 组件化方案的讨论,写篇文章梳理下思路。 首先我觉得”组件”在这里不太合适,因为按我理解组件是指比较小的功能块,这些组件不需要多少组件间通信,没什么依赖,也就不需要做什么其他处理,面向对象就能搞定。而这里提到的是较大粒度的业务功能,我们习惯称为”模块”。为了方便表述,下面模块和组件代表同一个意思,都是指较大粒度的业务模块。 一个 APP 有多个模块,模块之间会通信,互相调用,例如微信读书有 书籍详情 想法列表 阅读器 发现卡片 等等模块,这些模块会互相调用,例如 书籍详情要调起阅读器和想法列表,阅读器要调起想法列表和书籍详情,等等,一般我们是怎样调用呢,以阅读器为例,会这样写: #import "WRBookDetailViewController.h" #import "WRReviewViewController.h&…

JS与OC互调

最近在看React-native相关东西,发现rn中使用的javascriptcore这个框架来完成oc和js交互,故先了解一些相关东西,为后续研究准备 * JavaScriptCore作用:JavaScriptCore是苹果原生API,用来JS和OC交互的,库中有三个重要的类如下 * JSContext: JS运行环境,用它去执行JS代码,并且通过它去获取JS里的数据 * JSValue: 用于接收JS中获取的数据类型,可以是任一对象,方法 JS调用原生OC篇 方式一 * 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理。 * 我写了一个简单的HTML网页和一个btn点击事件用来与原生OC交互,HTML代码如下: <html> <header> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"…

ijkplayer

导入准备(省去茫茫多的打包集成步骤): * 参考资料:http://www.jianshu.com/p/1f06b27b3ac0 1.ijkplayer用法简介 * 只需要有推流url地址即可 * 注:最好真机测试,模拟器卡、不流畅 2.抓取数据 * 抓取了映客直播数据,没加密 * 映客主播接口url:http://116.211.167.106/api/live/aggregation?uid=133825214&interest=1 - (void)loadData { // 映客数据url NSString *urlStr = @"http://116.211.167.106/api/live/aggregation?uid=…

ReactiveCocoa-2

1.ReactiveCocoa常见操作方法介绍。 * 1.1 ReactiveCocoa操作须知 * 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,而RACSignal继承RACStream。 * 1.2 ReactiveCocoa操作思想 * 运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序编程接口:方法)执行结果的技术. * Hook用处:截获API调用的技术。 * Hook原理:在每次调用一个API返回结果之前,先执行你自己的方法,改变结果的输出。 * RAC开发方式:RAC中核心开发方式,也是绑定,之前的开发方式是赋值,而用RAC开发,应该把重心放在绑定,也就是可以在创建一个对象的时候,就绑定好以后想要做的事情,而不是等赋值之后在去做事情。 * 列如:把数据展示到控件上,之前都是重写控件的setModel方法,用RAC就可以在一开始创建控件的时候,就绑定好数据。…

Cocoapods error

* error: Unable to find a specification for xxxxxx * solution: Execute sudo rm -fr ~/.cocoapods/repos/master because it'll remove all the bogus and corrupted repos that you have in your computer to give it a chance to repopulate after you redo pod setup, which'll reinstate you…