Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift映射函数可变性_Ios_Swift - Fatal编程技术网

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
将隐藏一个或多个图像可能丢失的事实。