Ric*_*hiy 3 arrays enumeration ios swift swift2
我有一个4的UIImageVIew数组和可变大小的图像数组:[UIImage].
我想遍历视图数组并为每个视图分配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
}
}
Run Code Online (Sandbox Code Playgroud)
如果中的元素不超过4个,则代码可以正常工作images.然后我崩溃了:fatal error: ArraySlice index out of range.
我index在for循环中打印出来,似乎在索引时发生了崩溃0.views.count并在同一个循环中photos.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
}
}
Run Code Online (Sandbox Code Playgroud)
切换到2.0后唯一的变化是suffix和enumerate方法.
它看起来像Swift 2.0错误还是我做错了什么? 链接到源文件
解决方案我已完成:
let photos = Array(images.suffix(4))
Run Code Online (Sandbox Code Playgroud)
应该完全像suffix() 函数一样工作Swift 1.2