程序有Simpson课程:
import Foundation
import UIKit
class Simpson
{
var name=""
var occupation=""
var image = UIImage()
}
使用这个类我声明了一个数组:
import UIKit
class tableVC: UIViewController ,UITableViewDelegate,UITableViewDataSource{
@IBOutlet weak var tableView: UITableView!
var mySimpsons=[Simpson]()
override func viewDidLoad() {
super.viewDidLoad()
//tableview setup
tableView.delegate=self
tableView.dataSource=self
//create our Character
let homer=Simpson()
homer.name="Homer Simpson"
homer.occupation="safty inseptor"
homer.image=UIImage(named: "Homer.png")!
let bart=Simpson()
bart.name="Bart Simpson"
bart.occupation="Student"
bart.image=UIImage(named: "Bart.png")!
let marge=Simpson()
marge.name="Marge Simpson"
marge.occupation="HomerMaker"
marge.image=UIImage(named: "Marge.png")!
let Ned=Simpson()
Ned.name="Ned Simpson"
Ned.occupation="Phamacist"
Ned.image=UIImage(named: "Ned.png")!
mySimpsons.append(homer)
mySimpsons.append(bart)
mySimpsons.append(marge)
mySimpsons.append(Ned)
}
UITableView
委托的职能是:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return mySimpsons.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell=UITableViewCell()
cell.textLabel?.text=mySimpsons[indexPath.row].name
return cell
}
这个程序成功执行但是当Simpsons对象被赋予图像链接时它无法启动并且程序崩溃。 即
homer.image=UIImage(named: "Homer.png")!
我如何摆脱这个错误?您可以从此链接下载示例项目表格更正link。
答案 0 :(得分:2)
发生崩溃是因为您强制解包UIImage
实例。首先,检查是否将这些图像添加到项目中。然后检查图像是否通过以下方式正确实例化:
if let image = UIImage(named: "Homer") {
homer.image = image
}
根据UIImage.init(named:)
documentation:
对于PNG图像,您可以省略文件扩展名。对于所有其他文件格式,请始终包含文件扩展名。