Swift地图函数的可变性

时间:2018-05-14 14:02:28

标签: ios swift

我有这个正常工作的地图功能:

let movingImages = (1...71).map { UIImage(named: "Animation.\($0)")! }

除了没有Animation.1文件 - 它是Animation.01

我可以如何对其进行编码,以便在10之前为数字添加0?

,而不是重命名文件

编辑:这个问题与其他问题不同,因为其他地方提供的关于在Swift中添加0到单个数字的答案需要额外的上下文才能在需要返回值的映射中使用< / p>

1 个答案:

答案 0 :(得分:2)

您可以将String(format: ...)%02d一起使用:

let movingImages = (1...71).map {  index -> UIImage? in
     let imageNumber = String(format: "%02d", index) 
     return UIImage(named: "Animation.\(imageNumber)")!
}

另外,在旁注中,请避免使用强制展开(!)。

更安全的方式:

Swift 4:

let movingImages = (1...71).flatMap { index -> UIImage? in
     let imageNumber = String(format: "%02d", index) 
     return UIImage(named: "Animation.\(imageNumber)")
}

Swift 4.1:

let movingImages = (1...71).compactMap { index -> UIImage? in
     let imageNumber = String(format: "%02d", index) 
     return UIImage(named: "Animation.\(imageNumber)")
}