我遇到运行时错误。我刚读过“使用 Swift 进行应用程序开发”
"Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value"
请帮忙,我已经熟悉 if let
条件绑定(bind),但不确定在这种情况下我必须在哪里使用它才能显示我的 UIImage 。
对于 swift 和 IOS 来说仍然是全新的
标识符已设置, Storyboard上的 tableViewController
也设置为 MammaSitaTableViewController
。
我可以让文本属性本身显示在屏幕上,但前提是我取消图像属性。
class MammaSitaTableViewController: UITableViewController {
var mammaSitas : [MammaSita] =
[
MammaSita(name: "Megan Fox", photo: UIImage(contentsOfFile: "Megan.jpg")! ),
MammaSita(name: "Scarlet Johanson", photo: UIImage(contentsOfFile: "Scarlet.jpg")! ),
MammaSita(name: "Bella Hadid", photo: UIImage(contentsOfFile: "Bella.jpg")! )
] // end of delcared array mammaSitas
}
// MARK: - Table view data source
//numberOfSections Optional
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
//
// numberOfRowsInSection manditory to use dataSource
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return mammaSitas.count
} else {
return 0
}
}
//
// cellForRowAtIndexPath manditory to us dataSource
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//1 dequeueReusableCell
let cell = tableView.dequeueReusableCell(withIdentifier: "WomenCell", for: indexPath)
//2 fetch model object to be displayed
let mamaCita = mammaSitas[ indexPath.row ]
//3 configure cells properties
cell.textLabel?.text = "\(mamaCita.name)"
cell.imageView?.image = mamaCita.photo
//4 return cell
return cell
}
最佳答案
您可以通过以下方式使用条件绑定(bind)...
var mammaSitas = [MammaSita]()
if let img = UIImage(contentsOfFile: "Megan.jpg") {
let obj = MammaSita(name: "Megan Fox", photo: img)
mammaSitas.append(obj)
}
if let img = UIImage(contentsOfFile: "Scarlet.jpg") {
let obj = MammaSita(name: "Scarlet Johanson", photo: img)
mammaSitas.append(obj)
}
if let img = UIImage(contentsOfFile: "Bella.jpg") {
let obj = MammaSita(name: "Bella Hadid", photo: img)
mammaSitas.append(obj)
}
如果您的图像资源中有图像,那么您需要使用以下命令来获取图像。
let img = UIImage(named: "Megan.jpg")
您正在使用 contentsOfFile:
来获取图像,因此可能应该有一个图像路径而不是图像名称(例如“Megan.jpg”)。
let img = UIImage(contentsOfFile: <#imagePath#>) //not the image name "Megan.jpg"
希望有帮助:)
关于ios - Swift 类 Data 和 UITableViewController 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285711/