我认为我的应用程序崩溃的原因是因为没有将concert1添加到数组中,并且swift将其作为nil接收。我该如何解决这个问题?当我断点时,数组有0个对象。
var arrayOfConcerts: [ConcertsController] = [ConcertsController]()
override func viewDidLoad() {
super.viewDidLoad()
self.setUpConcerts()
self.table1.dataSource = self
self.table1.registerNib(UINib(nibName: "LiveConcertsCell", bundle: nil), forCellReuseIdentifier: "cell")
}
func setUpConcerts(){
let concert1 = ConcertsController(imageName: "ACL.png")
arrayOfConcerts.append(concert1)
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayOfConcerts.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = table1.dequeueReusableCellWithIdentifier("cell") as? CustomCellConcerts
let concert = arrayOfConcerts[indexPath.row]
cell!.setCell(concert.imageName)
return cell!
}
以下是ConcertsController的代码
import UIKit
import Foundation
class ConcertsController{
var imageName = "blank"
init(imageName: String){
self.imageName = imageName
}
}
以下是CustomCellConcerts的代码
import UIKit
class CustomCellConcerts: UITableViewCell {
@IBOutlet weak var concertimage: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func setCell(concertimage: String){
self.concertimage.image = UIImage(named: concertimage)
}
}
答案 0 :(得分:0)
如果我不得不猜测,那是因为您在代码中的某处使用UIImage
初始化程序创建了init(named: String)
,这是一个可用的初始化程序(返回UIImage?
)。然后,当初始化程序实际返回!
时,该图像会被nil
显式解包,因为它无法找到图像。只是一个猜测。查看您使用该图像的位置以及是否明确打开它。