gpt4 book ai didi

ios - 为什么将对象追加到数组时会出现 nil 错误?

转载 作者:行者123 更新时间:2023-11-30 14:01:16 26 4
gpt4 key购买 nike

我认为我的应用程序崩溃的原因是由于 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)
}

}

最佳答案

如果我不得不猜测,那是因为在代码中的某个地方,您使用 init(named: String) 初始化器创建了一个 UIImage ,这是一个可失败的初始化(返回一个UIImage?)。然后,当初始化程序由于找不到图像而实际返回 nil 时,该图像会使用 ! 显式解包。只是一个猜测。环顾一下您在哪里使用该图像以及您是否明确地解开它。

关于ios - 为什么将对象追加到数组时会出现 nil 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32960267/

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