尝试使用一个随机数从两个不同的数组(字符串和图像)中提取数据并导致类型冲突。
导入UIKit
ViewController类:UIViewController {
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var Image: UIImageView!
let animalNames = ["flag", "hammer", "shoe"]
let animalImages = ["flagImage", "hammerImage", "shoeImage"]
@IBAction func button1(_ sender: Any) {
let randomItem = Int(arc4random() % UInt32(animalNames.count))
label1.text = "\(animalNames[randomItem])"
Image.image = (animalImages[randomItem])
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
}
}
答案 0 :(得分:0)
代码的重要部分是:
let animalNames = ["flag", "hammer", "shoe"]
let animalImages = ["flagImage", "hammerImage", "shoeImage"]
animalNames
和animalImages
的类型均为[String]
(字符串数组)
您正在尝试设置image
的{{1}}属性,该属性是类型UIImageView
的对象。即它是UIImage?
图像,它不必存在。
发生此问题是因为当您需要加载实际图像时,您是从optional
数组中获取String
。
如果代码中的animalImages
数组包含项目中图像文件的名称(animalImages
,.jpg
等),则可以使用如下的.png
方法:
UIImage(named: String)