1.framework开始前的 理论
1).初衷
开始的理由千千万,但殊途同归.
(1) 提供给公司外部的人员使用, 不希望暴露内部”高大上”的实现
(2) 公司内部多个项目公用资源, 使用方便
(3) 模块化、分工合作, 架构组完成基础的实现, 功能开发工程师只需要关注功能实现, 不需要关注底层实现
(4) 提高编译速度,减少少量的改动引起的大量重复的编译
……
2).动态库,静态库
动态库存在形式: .framework, .dylib, .tbd
动态库是引用关系,编译时不会被拷贝到程序中,程序运行时 由系统动态加载
静态库存在形式: .a 和 .framework
静态库编译时会被完整拷贝一份到目标程序中
动态库与静态库详细的区别 参考:
https://my.oschina.net/shoutan/blog/786636
2.创建framework
1).创建工程
模板选择Cocoa Touch Framework
2).编写自定义代码
对需要共享的内容分模块添加
!建库时不得不注意的就是 swift的访问级别
Swift 提供了三种访问级别。这些访问级别相对于源文件中定义的实体,同时也相对于这些源文件所属的模块。
其中,函数的访问级别需要根据该函数的参数类型访问级别、返回类型访问级别得出。如果根据参数类型和返回类型得出的函数访问级别不符合上下文,那么就需要明确的申明该函数的访问级别。
代码中的所有实体,如果你不明确的定义其访问级别,那么它们默认为internal级别, 所以, 只是在一个工程中使用, 可以不用声明访问类型, 该工程 均可访问。
swift 三个等级的访问控制权限,可以简单的通过下面的规则来进行选择:
- Public: 对 App 或其他 framework 可见。
- Internal: 对该 framework 可见
- Fileprivate: 对该编译文件可以见
- Private: 对该类可见
具体参考文档:
http://wiki.jikex