Ios Swift映射函数可变性
我有一个正常工作的映射函数:Ios Swift映射函数可变性,ios,swift,Ios,Swift,我有一个正常工作的映射函数: let movingImages = (1...71).map { UIImage(named: "Animation.\($0)")! } 除了没有Animation.1文件-它是Animation.01 与其重命名文件,我如何将其编码为在10之前的数字中添加0 编辑:此问题与其他问题不同,因为其他地方提供的关于在Swift中将0添加到一位数的答案需要额外的上下文,以便在需要返回值的映射中使用字符串(格式:…)可与%02d一起使用: let movingImag
let movingImages = (1...71).map { UIImage(named: "Animation.\($0)")! }
除了没有Animation.1文件-它是Animation.01
与其重命名文件,我如何将其编码为在10之前的数字中添加0
编辑:此问题与其他问题不同,因为其他地方提供的关于在Swift中将0添加到一位数的答案需要额外的上下文,以便在需要返回值的映射中使用
字符串(格式:…)
可与%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)")
}
let movingImages = (1...71).compactMap { index -> UIImage? in
let imageNumber = String(format: "%02d", index)
return UIImage(named: "Animation.\(imageNumber)")
}
Swift 4.1:
let movingImages = (1...71).flatMap { index -> UIImage? in
let imageNumber = String(format: "%02d", index)
return UIImage(named: "Animation.\(imageNumber)")
}
let movingImages = (1...71).compactMap { index -> UIImage? in
let imageNumber = String(format: "%02d", index)
return UIImage(named: "Animation.\(imageNumber)")
}
您可以将
字符串(格式:…)
与%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)")
}
let movingImages = (1...71).compactMap { index -> UIImage? in
let imageNumber = String(format: "%02d", index)
return UIImage(named: "Animation.\(imageNumber)")
}
Swift 4.1:
let movingImages = (1...71).flatMap { index -> UIImage? in
let imageNumber = String(format: "%02d", index)
return UIImage(named: "Animation.\(imageNumber)")
}
let movingImages = (1...71).compactMap { index -> UIImage? in
let imageNumber = String(format: "%02d", index)
return UIImage(named: "Animation.\(imageNumber)")
}
这里实际上需要强制展开图像,因为这会导致崩溃,让开发人员在开发的早期就知道缺少图像文件。使用
flatMap/compactMap
将隐藏一个或多个图像可能丢失的事实。此处实际上需要强制展开图像,因为这将导致崩溃,让开发人员在开发早期就知道缺少图像文件。使用flatMap/compactMap
将隐藏一个或多个图像可能丢失的事实。