我有这样创建的静态字典:
static var pictures = Dictionary<Int, Array<UIImage>>()
我想用图像填充它。在创建它的那一刻,我不知道需要创建多少个键/值对。我必须从互联网上获取数据,但是在那之后我要进行填充,但是我的字典仍然是空的:
for i in 0...Fetching.numberOfAliveListings - 1 {
for _ in 0...AdsCollectionView.listings[i].photos.count - 1 {
AdsCollectionView.pictures[i]?.append(UIImage(named: "noimage")!)
}
}
答案 0 :(得分:2)
pictures
最初是空的。因此,任何访问给定键值的尝试都将导致一个nil
值。由于值(数组)为nil
,因此可选的链接会跳过对append
的调用。
一种解决方案是在查找给定Int
的值时提供默认数组。
AdsCollectionView.pictures[i, default: []].append(UIImage(named: "noimage")!)
您可能还希望在声明pictures
时考虑其他语法:
static var pictures = [Int: [UIImage]]()