1、减少基础私有库podspec中的层级
2、减少基础私有库podspec中相互依赖
3、增加私有库,尽量减少每一个私有库的业务独立性,其实就是每个私有库中的业务尽量单一,文件少一些;
解决pod lib lint/repo push不支持i386编译&只能真机运行的库源起 公司有几个私有pod库,一直使用的是:git =>'https://xxxx.git'这种方式集成的,但是每次 pod update 的时候都需要下载一遍,而且公司的网...
1、减少基础私有库podspec中的层级
2、减少基础私有库podspec中相互依赖
3、增加私有库,尽量减少每一个私有库的业务独立性,其实就是每个私有库中的业务尽量单一,文件少一些;
解决pod lib lint/repo push不支持i386编译&只能真机运行的库源起 公司有几个私有pod库,一直使用的是:git =>'https://xxxx.git'这种方式集成的,但是每次 pod update 的时候都需要下载一遍,而且公司的网...
最近准备着手搭建一些方便团队开发工作顺利进行的工具平台,首先就从Jenkins打包开始吧。其实关于ios的自动化打包文章在网上已经有N篇了,但我还是决定要写下这边文章,不是为...
SI类和Controller 深入绑定了,这样理解的话每一个Module必须要存在相应的SI类,那么SI类 就相当于与外界的“桥梁”了。有一个思考,SI只做了两件事情,一个是初始化,一个是协议变量赋值;是否可以只存在一个公共的SI,所有Module的初始化都通过此类;
想法:
为UIViewController写了一个扩展类,类中声明
@property (nonatomic, strong) id<BaseModule> interface;
这样在SI中对此进行赋值
serverBody.interface = self;
此时,所有的controller可以直接调用
id<ModuleA> moduleA = (id<ModuleA>)self.interface;
NSLog(@"%@",moduleA.name);
moduleA.callback(@"success");
不过此种方式产生了不好的结果,interface不可赋值,因为在赋值的时候无法识别到controller中的setter方法;
第二种方式:
在router类中定义
@property (nonatomic, strong) id<BaseModule> module;
_module = [[cls alloc] init];赋值
然后在Controller中使用
id<ModuleA> moduleA = (id<ModuleA>)[OHGRouter router].module;
这样就只会存在一个protocol、SI、router 来处理所有的跳转;
理解的是否有偏差?!
一种简单的iOS 的组件化设计前言:如今iOS的开发中,组件化设计都成为一种标配了,要是不用上好像就赶不上潮流了。网上相关的方案分析也多如牛毛。分析比较多的是URLRoute / 蘑菇街的 url-blo...
@云晞 家庭能严重影响爱情,并不是因为有没有那么爱。
可惜不是你,陪我到最后文|云晞 01 深夜十二点,我左手挎着单肩包,右手拉着行李箱,一个人走在从火车站到家的路上。 明天公司放假,我本来想去大连的。车票我都已经订好了,今晚出发的话,明天一大早就能...
ordinary、of simple、real
【特别策划】简书X扇贝 你心中的最美女生是什么样子?如果你是女生,你期待成为什么样的女性呢?如果你是男生,那你肯定对完美女性有过无数次幻想,她们是什么样的呢? 莎士比亚曾经这样描绘他心中的girl: Shall I compa...