我已經創建了一些代碼,以便從圖像選取器中提取圖像,並將圖像放入數組中。使用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