gpt4 book ai didi

ios - 非空数组,访问第一个元素 : index out of range (Swift 2. 0)

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:56 26 4
gpt4 key购买 nike

我有一个包含 4 个 UIImageVIew 的数组和一个大小可变的图像数组:[UIImage]

我想遍历 View 数组并为每个 View 分配最后 4 张图像。

let photos = images.suffix(4)
for (index, view) in views.enumerate() {
if index <= photos.count - 1 {
view.image = photos[index]
} else {
view.image = nil
}
}

如果 images 中的元素不超过 4 个,代码将完美运行。然后我遇到了一个崩溃:fatal error: ArraySlice index out of range

我在 for 循环中打印了 index,当 index 为 0 时似乎发生了崩溃。 views.countphotos.count 在同一个循环中返回 4

因此,在访问非空数组的第一个 - 0 元素时出现错误。

在 Swift 1.2 中,这段代码可以完美运行:

let photos = suffix(images, 4)
for (index, view) in enumerate(views) {
if index <= photos.count - 1 {
view.image = photos[index]
} else {
view.image = nil
}
}

切换到 2.0 后唯一的变化是 suffixenumerate 方法。

它看起来像是 Swift 2.0 的错误还是我做错了什么? Link to source file

我已经完成的解决方案:

let photos = Array(images.suffix(4))

应该与 Swift 1.2 中的 suffix() 函数完全一样工作

最佳答案

这是由于最近对 ArraySlice 的更改。现在 ArraySlice 的索引不是从零开始的。例如,如果 images.count == 10,则 images.suffix(4).startIndex == 5。请参阅发行说明 here ,然后搜索词“为了通用代码的一致性和更好的组合”

关于ios - 非空数组,访问第一个元素 : index out of range (Swift 2. 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498883/

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