本期周报主要包括平安好房APP在模块化架构推进过程中遇到的一些有意思的技术问题,当然也有一点点关于WWDC 16的资讯(开发者版)。
资讯
1) WWDC 2016 新系统发布会5分钟无废话版简介
苹果还宣布了一个为 Flash/SSD储存设备优化的新文件系统Apple File System(APFS),希望对我那台老MBP有所帮助(前不久刚自己动手换了SSD)。APFS预计将在2017年发布,暂不会提供它的开源实现。
技术人员的目光不要被各类媒体的无脑小编带偏,至于其他方面的更新,此处不表,冷嘲也好、热讽也罢。
2) 关于 WWDC 16 总得说点什么
开发者记录的一些感想,作者曾在QQ音乐团队独立完成Apple Watch端第一个版本,目前在阿里巴巴。
开发
1) NSInvocation returns value but crash the app
在平安好房APP推进模块化架构过程中,对一些曾经使用MRC的代码做了ARC迁移。冷不丁的被NSInvocation调用给坑了一把。
在ARC模式下,getReturnValue:仅仅是从invocation的返回值拷贝到指定的内存地址,如果返回值是一个NSObject对象的话,是没有处理内存管理的。而我们在定义returnValue时使用的是__strong类型的id类型,ARC就会假设该内存块已被retain(实际没有)。当returnValue出了定义域,被释放时,导致crash。
2) performSelector may cause a leak because its selector is unknown
依旧是ARC迁移相关。在迁移到ARC之后,编译器给出了一个可能leak的警告。仔细研究后,决定采用SuppressPerformSelectorLeakWarning宏解决。
3) Creating and Distributing iOS Frameworks
文章介绍了Framework模板的用法,特别是如何在项目中使用新建的Framework,其中的方案在好房统计SDK开发、架构演进过程中均实践过。
工具
1) CocoaPods中一些问题的解决
上一期周报提到过,目前不少公司模块化架构采用的CocoaPods方案。在使用CocoaPods的过程中难免遇到各类问题,翻翻这篇文章的总结,相信你会有些收获。
2) Achieving Awesomeness with Local CocoaPods
作者(曾经是Twitter for Apple Watch的负责人)介绍了使用私有Pods的一些思考,有一段话非常赞同:
While this approach works great if your Pods are stable, I’ve found that this doesn’t work too well if your Pods are still in active development; keeping them in lockstep with your application code can be a huge pain, particularly on larger teams with multiple feature branches.
3) Octopress与El Capitan冲突问题解决方案
近一年没有写blog,近一年没有用Octopress,所以与El Capitan冲突的问题也是上周末才知道。
小结一下:新系统下需要新的依赖库,而这些库需要ruby2.2.3的版本安装。
其他
1) 注册在开曼的公司,其期权究竟能不能买?
updated on June 19: 当事公司是青云,看其回应。
2) 文摘
人生的困扰大抵来自四个方面:不可避免的死亡,内心深处的孤独感,我们追求的自由以及生活并无显而易见的意义可言。
@end