首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Images.append(UIImage(名称: imageNames[i])!) -解包可选值时发现nil

Images.append(UIImage(名称: imageNames[i])!) -解包可选值时发现nil
EN

Stack Overflow用户
提问于 2016-07-30 06:33:57
回答 2查看 454关注 0票数 0

我跟随this tutorial给Xcode添加了一个gif。

我从头到尾都读过this的经典答案“出乎意料地发现零”。不幸的是,我发现它是胡言乱语,因为我是一个彻头彻尾的菜鸟。

这是我的代码:

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


        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{

                images.append(UIImage(named: imageNames[i])!)

        }

        theGif.animationImages = images
        theGif.animationDuration = 1.0
        theGif.startAnimating()

在最后。但这并不管用。

*(如果你对我一无所知感到困扰,请知道我已经尝试过代码学院,自由代码营,可汗学院编码,并开始了多本书,但我想我是am...hopeless?我试过了。

EN

回答 2

Stack Overflow用户

发布于 2016-07-30 06:46:03

正如你所说的,到目前为止,你的错误在StackOverflow中是一个经典的错误,我将告诉你如何避免,当然还有为什么你要面对它。

让我们从错误的根源开始,您使用的是类UIImage的failable初始化器,这意味着这个初始化可以返回nil

根据Apple的说法

返回指定文件的图像对象,如果该方法找不到指定的图像,则返回nil

儿子,在您的示例中,无法在应用程序的主包中找到具有该名称的图像。

为了避免运行时错误,建议您始终使用optional-binding而不是强制解包可选值,如下所示:

代码语言:javascript
复制
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)
   }
}

我希望这对你有帮助。

票数 2
EN

Stack Overflow用户

发布于 2016-07-30 07:09:58

针对您的情况的错误是由以下行引起的:

代码语言:javascript
复制
var imageNames = ["giphy-1 .jpg","giphy-2 .jpg", "giphy-3 .jpg", "giphy-4 .jpg", "giphy-5 .jpg"]

您需要删除图像名称和图像格式之间的空格,因此将变为:

代码语言:javascript
复制
var imageNames = ["giphy-1.jpg", "giphy-2.jpg", "giphy-3.jpg", "giphy-4.jpg", "giphy-5.jpg"]

这就是我第一次看到这个问题时我的直觉告诉我的;但为了确定,我决定对这两种情况进行快速测试,这证实了我最初的猜测。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38668410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档