加入百度时间不长,一直参与百度浏览器 iPhone 版的开发。开发组里每位同事会轮流负责新版本的管理工作,在试用期转正的1个月后,我承担了一次重大更新版本的项目管理工作。
这次重大更新版本从进入开发到 App Store 发布,将近2个月时间。本文是对这段经历的总结,包括管理经验、个人感受、个人思考。
OC 为动态运行时语言,其将许多决策从编译和链接时延迟到运行时执行。OC 中的方法调用本质为消息传递,[receiver message] 可以解释为向 receiver 对象发送 message 消息。今天阅读了 Apple 开发文档的 Messaging 章节,利用运行时系统提供的相关方法,OC 消息传递式的方法调用最终转换成了标准 C 语言函数调用方式,实现了统一。
本文以 Apple 开发文档为基础,讲述 OC 以消息传递方式实现方法调用的执行流程。第一节介绍执行消息解析的函数;第二节讲述消息解析过程中,消息对应的方法实现是如何寻找的;第三节讲述方法实现找到后,如何执行。
通过为控件设定约束,Autolayout 能够实现控件布局的自适应。当 app 运行时,iOS 根据预先设定的约束布局界面元素。
以约束的方式为控件 A 设定布局,控件 A 的实际布局数据是通过约束的依赖关系计算出来的。比如,控件 A 的 leading 始终和控件 B 的 trailing 相等,则控件 A 的 leading 数据依赖于控件 B 的 trailing 数据。
当在 UIScrollView 中采用 Autolayout 方式布局时,情况变得有些复杂。UIScrollView 的 contentSize 依赖于其子视图的布局,而其子视图的布局依赖于 UIScrollView 的 contentSize。如图1所示。