我跟着this tutorial向gcode添加了一个gif。
我读过this经典"意外地发现了nil"从头到尾回答。不幸的是,我发现它是胡言乱语,因为我是一个总菜鸟*。
这是我的代码:
{{1}}
我向Philip Lesback寻求帮助,他告诉我要再加一个!在末尾。那没用。
*****(如果你对我一无所知感到困扰,请知道我已经尝试过代码学院,免费代码营,可汗学院编码,并开始了多本书,但我......无望,我想?我已经尝试过了。对我来说效果最好的是视频教程。)
答案 0 :(得分:1)
正如你所说的那样,到目前为止你的错误在StackOverflow中是经典的,我会告诉你如何避免,当然还有为什么要面对它。
让我们从错误的起源开始,您正在使用类UIImage
的可用初始值设定项,这意味着此init可以返回nil
。
根据Apple:
init返回指定文件的图像对象,如果方法找不到指定的图像,则返回
nil
。
在您的情况下,在应用程序的主要包中找不到具有该名称的图像。
为了避免运行时错误,建议您使用可选绑定而不是强制解包可选值,如下所示:
var imageNames = ["giphy-1 .jpg","giphy-2 .jpg", "giphy-3 .jpg", "giphy-4 .jpg", "giphy-5 .jpg"]
var images = [UIImage]()
for i in 0..<imageNames.count{
if let image = UIImage(named: imageNames[i]) {
images.append(image)
}
}
我希望这对你有所帮助。
答案 1 :(得分:1)
特别针对您的情况的错误是由以下行引起的:
var imageNames = ["giphy-1.jpg", "giphy-2.jpg", "giphy-3.jpg", "giphy-4.jpg", "giphy-5.jpg"]
您需要删除图像名称和图像格式之间的空格,因此将变为:
function getGithubGists() {
fetch('https://api.github.com/users/octocat/gists')
.then(function(response) {
response.json().then(function(data) {
console.log('data', data)
})
})
.catch(function(error) {
console.log('Error', error)
})
}
当我第一次看到这个问题时,这就是我的直觉告诉我的;但可以肯定的是,我决定对这两种情况进行快速测试,这证实了我最初的猜测。