我有一个图像数组 var images: NSArray! = []
。我的数组中最多可以有5张图片。我想要能够处理任意数量的图片,因此我将它们提取出来。
guard let imageOne = images[0] as? UIImage else { return }
guard let imageTwo = images[1] as? UIImage else { return }
guard let imageThree = images[2] as? UIImage else { return }
guard let imageFour = images[3] as? UIImage else { return }
guard let imageFive = images[4] as? UIImage else { return }
我希望每个索引都是可选的,这样我就可以使用imageOne或imageOne和imageTwo,但当我尝试使用少于5张图片时,会出现索引错误。如何使每个索引变成可选项,以便它不再与数组分组,并且每个索引都成为自己的图像。
我最初有一个数组,因为我有一个自定义的UIImagePicker,只接受数组,但我想上传图片到Firebase,而Firebase不接受数组,所以我必须从数组中提取图像。
根据下面的建议答案,我对我的代码进行了如下修改:
for (counter, img) in images.enumerated(){
if counter == 0 {
func uploadImage(image: UIImage){
var randomName = randomStringWithLength(length: 5)
let imageData = UIImageJPEGRepresentation(imageOne!, 1.0)
let uploadRef = FIRStorage.storage().reference().child("images/\(randomName).jpg")
uploadRef.put(img as! UIImage, metadata: nil) { metadata,
error in
if error == nil {
print("successfully uploaded Image")
self.imageFileName = "\(randomName as String).jpg"
randomName = randomStringWithLength(length: 5)
let postObject: Dictionary<String, Any> = [
"image" : self.imageFileName,
]
FIRDatabase.database().reference().child("posts").child(self.loggedInUser!.uid).child(key).setValue(postObject)
print("Posted to Firebase. ")
} else{
print("Error uploading image")
}}
}
if let pickedImage = img as?
UIImage{
uploadImage(image: pickedImage)
}
}
}
现在,我该如何检查选择了多少张图片并在每个
if counter == num
中调用函数?