gpt4 book ai didi

ios - 对象加载 UIImage 使用 swift 使程序执行崩溃

转载 作者:行者123 更新时间:2023-11-28 12:17:59 27 4
gpt4 key购买 nike

程序有 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委托(delegate)的功能是:

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
}

此程序已成功执行,但在为辛普森一家对象提供图像链接时无法启动且程序崩溃。即

homer.image=UIImage(named: "Homer.png")!

我怎样才能摆脱这个错误?您可以从此链接下载示例项目表单更正 link .

最佳答案

发生崩溃是因为您强制展开 UIImage 实例。首先,检查您是否将这些图像添加到您的项目中。然后通过以下方式检查图像是否正确实例化:

if let image = UIImage(named: "Homer") {
homer.image = image
}

根据UIImage.init(named:) documentation :

For PNG images, you may omit the filename extension. For all other file formats, always include the filename extension.

关于ios - 对象加载 UIImage 使用 swift 使程序执行崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com