gpt4 book ai didi

ios - Swift:数组追加中的 “unexpectedly found nil while unwrapping an Optional value”

转载 作者:行者123 更新时间:2023-11-28 11:00:40 25 4
gpt4 key购买 nike

尝试通过以下代码使用动画制作加载器:

        var images: [UIImage] = []
for i in 1...10
{
let strImageName : String = "loader\(i).png"
images.append(UIImage(named: strImageName)!)
}
self.loader.animationImages = images
self.loader.animationDuration = 1.0
self.loader.startAnimating()

我遇到了这个 fatal error :“在展开可选值时意外发现 nil然后我的应用程序崩溃了”以及崩溃后来自调试器的那些信息:

images = ([UImage]) 0 values  
strImageName = (String) “loader1.png”

我不明白我的代码有什么问题。谁能帮帮我?

最佳答案

发生的事情是 UIImage 的初始化程序是可失败的,并且无法找到您尝试创建的图像,因此强制展开崩溃。您必须有条件地展开(即 if let):

var images: [UIImage] = []
for i in 1...10 {
let strImageName = "loader\(i).png"
if let image = UIImage(named: strImageName) {
images.append(image)
} else {
print("Image '\(strImageName)' does not exist!")
}
}
self.loader.animationImages = images
self.loader.animationDuration = 1.0
self.loader.startAnimating()

您也可以使用 map/flatMap 在一行中完成:

let images = (1...10).map { "loader\($0).png" }.map { UIImage(named: $0) }.flatMap { $0 }

关于ios - Swift:数组追加中的 “unexpectedly found nil while unwrapping an Optional value”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40740389/

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