iOS最喜欢的框架:使用R.swift的Typesafe
Android IDE在构建时自动生成一个R.java文件,该文件包含项目中每种资源类型的子类以及对其的静态引用。 例如,R.drawable.icon将是名为“ icon”的图像的ID。
在iOS中,我们不太幸运-加载资源文件需要我们指定其名称,例如:UIImage(named:“ icon”)。
这可能会导致一些问题:
- 不必要的强制转换-例如:使用标识符使可重用单元出队将导致UICollectionView类型的实例,但是在运行时,我们大多数情况下将有一个继承自UICollectionView的实例。 如果我们知道该单元格的标识符,那么我们就知道该单元格的类型。
- 由于错误的字符串标识符,导致运行时崩溃。
- 没有自动完成。
R.swift是一个模仿Android IDE R.java文件创建的框架:我们添加了一个在构建时生成R.swift文件的脚本。 该文件包含对项目中所有资源的静态引用,例如:
- 图片
- 字型
- 资源文件
- 色彩
- 本地化字符串
- 故事板
- 塞格斯
- 笔尖
- 可重复使用的细胞
因此,例如,看下面的行:
让图像:UIImage = UIImage(名称:“ imageName”)!
如果文件imageName不存在,它将崩溃(强制解开nil)。 相反,我们可以使用以下行:
让图像:UIImage = R.image.imageName()!
如果imageName文件更改了它的名称或从项目中删除了它,我们将收到一个编译错误!
R.swift对我来说是必不可少的框架-没有它,我就不会开始一个项目! 我建议您转到它的GitHub存储库并检查文档中的其余示例。
快乐(安全)的编码🙂