我正在使用R.swift获取资产名称。我正在创建一个用于检查资产重复项的库,并希望遍历所有资产名称以获取用于检查资产重复性的数据。如何快速遍历静态变量。
struct image {
static let winnerPunyaOrang = Rswift.ImageResource(bundle: R.hostingBundle, name: "Winner Punya Orang")
static let fire_ico = Rswift.ImageResource(bundle: R.hostingBundle, name: "fire_ico")
static let fire = Rswift.ImageResource(bundle: R.hostingBundle, name: "fire")
}
答案 0 :(得分:0)
您的解决方案存在一些问题:
更好的方法是使用CaseIterable
枚举。这将允许将来使用不会导致内存开销和最少维护的模式来扩展代码。
enum ImageAsset: String, CaseIterable {
//your cases go here...
case winnerPunyaOrang = "Winner Punya Orang"
case fireIco = "fire_ico"
//... and you can continuously extend them by adding more asset names
//This function will return images as and when you need them
func image() -> UIImage {
return Rswift.ImageResource(bundle: R.hostingBundle, name: self.rawValue)
}
}
现在,只要您在程序中需要图像资产,就可以调用:
let image = ImageAsset.fireIco.image()