12张视图中的随机照片–致命错误:索引超出范围 [英] Random photos in 12 views – Fatal error: Index out of range

查看:93
本文介绍了12张视图中的随机照片–致命错误:索引超出范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经Thread 1: Fatal error: Index out of range从NSViews中的数组中循环了我的7张照片.

I've got Thread 1: Fatal error: Index out of range looping my 7 photos from array in NSViews.

如何解决?

let url = URL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("Desktop/ArrayOfElements")
do {
    let fileURLs = try FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys: nil, options: [.skipsHiddenFiles]).reversed()
    let photos = fileURLs.filter { $0.pathExtension == "jpg" }

    for index in photos {
        let image = [NSImage(data: try Data(contentsOf: index))]

        for view in arrayOfViews {
            let i = Int(arc4random_uniform(UInt32(photos.count-1)))
            view.image = image[i]
        }
    }
} catch {
    print(error)
}

推荐答案

似乎这一行是错误的: view.image = image[i] 图像数组具有length = 1

It seems that this line is wrong: view.image = image[i] image array has length = 1

改为使用view.image = image[0]

编辑

let url = URL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("Desktop/ArrayOfElements")
do {
    let fileURLs = try FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys: nil, options: [.skipsHiddenFiles]).reversed()
    let photos = fileURLs.filter { $0.pathExtension == "jpg" }


        for view in arrayOfViews {
            let i = Int(arc4random_uniform(UInt32(photos.count-1)))
            let image = NSImage(data: try Data(contentsOf: photos[i]))
            view.image = image
        }

} catch {
    print(error)
}

这篇关于12张视图中的随机照片–致命错误:索引超出范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆