Swift 如何在xCode中修复此错误?

Swift 如何在xCode中修复此错误?,swift,xcode,Swift,Xcode,无论我在xCode中运行什么程序(只要视图控制器中有@IBOutlet),我都会得到错误致命错误:在展开可选值时意外发现nil 在本例中,我的代码是一个简单的图像幻灯片: @IBOutlet weak var imageView: UIImageView! override func viewDidAppear(animated: Bool) { var imagesNames = ["image-3.jpeg","image-4.jpeg","image-5.jpeg","image

无论我在xCode中运行什么程序(只要视图控制器中有
@IBOutlet
),我都会得到错误
致命错误:在展开可选值时意外发现nil

在本例中,我的代码是一个简单的图像幻灯片:

@IBOutlet weak var imageView: UIImageView!

override func viewDidAppear(animated: Bool) {
    var imagesNames = ["image-3.jpeg","image-4.jpeg","image-5.jpeg","image-6.jpeg","image-7.jpeg"]

    var images = [UIImage]()

    for i in 0..<imagesNames.count{
        images.append(UIImage(named: imagesNames[i])!)
    }

    imageView.animationImages = images
    imageView.animationDuration = 0.05
    imageView.startAnimating()
}
@ibvar-imageView:UIImageView!
覆盖功能视图显示(动画:Bool){
var imagesNames=[“image-3.jpeg”、“image-4.jpeg”、“image-5.jpeg”、“image-6.jpeg”、“image-7.jpeg”]
var images=[UIImage]()

对于0中的i..可能在故事板中引用了一个不需要的出口

当视图具有uiviewcontroller代码中缺少的引用出口时,会发生这种情况

确保所有引用的插座都链接到UIViewController:


我能想到的唯一一件事是,如果
UIImage
的强制展开发现您的一张图像为零。若要再次检查这对您来说不是一件有趣的事情,您应该安全地展开图像(这是一种很好的做法)。尝试一下,看看您是否仍然收到错误:

override func viewDidAppear(animated: Bool) {
    var imagesNames = ["image-3.jpeg","image-4.jpeg","image-5.jpeg","image-6.jpeg","image-7.jpeg"]

    var images = [UIImage]()

    for i in  0..<imagesNames.count {
        guard let image = UIImage(named: imagesNames[i]) else {
            print("\(imagesNames[i]) not found!"); continue 
        }
        images.append(image)
    }

    imageView.animationImages = images
    imageView.animationDuration = 0.05
    imageView.startAnimating()
}
覆盖函数视图显示(动画:Bool){
var imagesNames=[“image-3.jpeg”、“image-4.jpeg”、“image-5.jpeg”、“image-6.jpeg”、“image-7.jpeg”]
var images=[UIImage]()

对于0中的i..尝试删除未连接的插座。可能您已删除viewcontroller文件中的变量,但忘记删除已连接的插座


您可以将for循环更改为一个简单的映射调用:
让images=imageNames.map{UIImage(name:$0)!}
您的五幅图像是否已添加到项目中?@AMomchilov,同时这彻底简化了代码(我不仅为此向您表示感谢,我也为此感谢您)它无法解决UIImage本身存在的问题(一)believe@vacawama是的,他们有。再一次,我真诚地怀疑我的问题的答案在于这个特定的项目。我相信我的计算机上的xCode有问题,我希望能发现。如果我错了,我会欣然接受,继续我的项目,但这并不是唯一一个发生这个确切错误的问题。它什么时候崩溃?你试过调试吗?谢谢你的建议,但问题不在于插座有问题。你确定吗?我经常遇到同样的问题,这是图像的“引用插座”部分下的错误,一个插座是从imageView到Slideshow(视图名称)。因此,这将返回未找到所有图像(
image-3.jpeg未找到!
)…这怎么可能?哦,错误出现在
imageView.animationImages=images
行你能提供你的图像存储在应用程序目录中的屏幕截图吗?我不确定如何附加屏幕截图,但它们的路径如下:
/Users/Emet/Desktop/breakdown\u final/breakdown\u final/images-3.jpeg
where
Breakdown\u final
是项目的名称。它们与我的ViewController和AppDelagate位于同一文件夹中(不在资源中)