Framework是框架的意思,是组件和接口的集合,它可以将代码文件和资源文件一起打包供开发者使用。 Framework有一个重要的特性,我们在使用某些组件或接口的时候,Framework只会动态调用该组件或接口所需要的代码,从而减少了内存的消耗,也提高了系统的性能。
很多人在做项目的时候,都积累了大量自定义的UI组件和接口,我们也可以做成自己独有的Framework,方便不同项目间的使用,也方便分享给别人。
在Xcode中创建自己的Framework其实十分简单,以Xcode 8为例,如下所示:
创建一个Framework工程
打开Xcode,点击"File->New->Project", 选择"Cocoa Touch Framework"创建工程
将工程命名为"RRSwiftKit",填写工程相关信息(组织名,编程语言等),点击下一步选择工程路径进行创建
一个简单的Framework就创建完成了
创建自定义接口
接下来我们在工程中添加一个Swift文件,命名为"RRColor",然后添加一个扩展接口,实现"只传入RGB的整型值来生成 UIColor 对象",编译后,就可以得到"RRSwiftKit.framework"的框架文件
extension UIColor {
//只需要传RGB的整型值
public convenience init(red: Int, green: Int, blue: Int) {
self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: 1.0)
}
}
在其他工程中使用自定义的Framework
打开Xcode,点击"File->New->Project", 选择"Single View Application"创建一个新的工程,命名为“TestFramework”
**将Framework "RRSwiftKit"引入到测试工程 "TestFramework" **
如图所示,将Framework "RRSwiftKit" 添加进工程 "TestFramework"
依次进入 "TestFramework" 的配置中 "General->Embedded Binaries" ,点击添加按钮
选择自定义的框架 "RRSwiftKit.framework"
测试扩展接口
我们在ViewController.swift中引用RRSwiftKit,然后就可以看到扩展接口的语法提示了
我们随便输入一组 0-255的数字,运行后就可以看到结果
self.view.backgroundColor = UIColor.init(red: 156, green: 180, blue: 244)
完整代码示例下载地址: https://github.com/ilrrong/TestFramework