我已经创建了一些代码,以便从图像选取器中提取图像,并将图像放入数组中。使用Swift 3或4的iOS重构代码建议
我想将数组中的图像放入另一个用于上传到firebase的变量。我遇到的问题是,如果用户没有选择8张图片,那么它会使程序崩溃,因为新变量正在等待它们,所以我写了一些If,Else代码,但是它长时间地执行了大量的计数检查阵列中的图像。我期待看看这是否可以重构,如果有的话可能是switch语句。我相当新,所以也许我对交换机可以做什么有错误的想法。我现在要读更多关于它们的内容。
以下是我的代码。
func doneButtonDidPress(_ imagePicker: ImagePickerController, images: [UIImage]) {
if images.count > 8 {
imagePicker.dismiss(animated: true, completion: nil)
photoNumber()
}else {
if images.count == 1 {
photo1 = images[0]
}else {
print("Tony: No image in number 1")
}
if images.count == 2 {
photo1 = images[0]
photo2 = images[1]
}else {
print("Tony: No image in number 2")
}
if images.count == 3 {
photo1 = images[0]
photo2 = images[1]
photo3 = images[2]
}else {
print("Tony: No image in number 3")
}
if images.count == 4 {
photo1 = images[0]
photo2 = images[1]
photo3 = images[2]
image4 = images[3]
}else {
print("Tony: No image in number 4")
}
if images.count == 5 {
photo1 = images[0]
photo2 = images[1]
photo3 = images[2]
image4 = images[3]
image5 = images[4]
}else {
print("Tony: No image in number 5")
}
if images.count == 6 {
photo1 = images[0]
photo2 = images[1]
photo3 = images[2]
image4 = images[3]
image5 = images[4]
image6 = images[5]
}else {
print("Tony: No image in number 6")
}
if images.count == 7 {
photo1 = images[0]
photo2 = images[1]
photo3 = images[2]
image4 = images[3]
image5 = images[4]
image6 = images[5]
image7 = images[6]
}else {
print("Tony: No image in number 7")
}
if images.count == 8 {
photo1 = images[0]
photo2 = images[1]
photo3 = images[2]
image4 = images[3]
image5 = images[4]
image6 = images[5]
image7 = images[6]
image8 = images[7]
}else {
print("Tony: No image in number 8")
}
imagePicker.dismiss(animated: true, completion: nil)
}
}
你为什么要保持图像的变量?你不能使用相同的数组&上解雇数组上传图像对象? – Ellen
我已经尝试过,但是当我交换变量时,我把图片放入ie photo1中,图片[0]上传到firebase时调用它说图片未定义,我推测这是因为它是在调用图片的函数中创建的选择器 –
但在运行时,您可以通过迭代遍历数组而不是先检查 – Ellen