将项目追加到字典中的数组不起作用

时间:2018-07-18 16:56:05

标签: ios swift

我有这样创建的静态字典:

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")!)
    }
}

1 个答案:

答案 0 :(得分:2)

pictures最初是空的。因此,任何访问给定键值的尝试都将导致一个nil值。由于值(数组)为nil,因此可选的链接会跳过对append的调用。

一种解决方案是在查找给定Int的值时提供默认数组。

AdsCollectionView.pictures[i, default: []].append(UIImage(named: "noimage")!)

您可能还希望在声明pictures时考虑其他语法:

static var pictures = [Int: [UIImage]]()