尝试使用一个随机数从两个不同的数组(字符串和图像)中提取数据

时间:2018-09-27 00:30:45

标签: arrays

尝试使用一个随机数从两个不同的数组(字符串和图像)中提取数据并导致类型冲突。

导入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?) {

}

}

1 个答案:

答案 0 :(得分:0)

代码的重要部分是:

let animalNames = ["flag", "hammer", "shoe"]
let animalImages = ["flagImage", "hammerImage", "shoeImage"]

animalNamesanimalImages的类型均为[String](字符串数组)

您正在尝试设置image的{​​{1}}属性,该属性是类型UIImageView的对象。即它是UIImage?图像,它不必存在。

发生此问题是因为当您需要加载实际图像时,您是从optional数组中获取String

如果代码中的animalImages数组包含项目中图像文件的名称(animalImages.jpg等),则可以使用如下的.png方法:

UIImage(named: String)