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存储库并检查文档中的其余示例。

快乐(安全)的编码🙂