我已经创建了这个静态字典:
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")!)
}
}
最佳答案
pictures
最初为空。因此,任何访问给定密钥值的尝试都将导致nil
值。由于值(数组)是nil
,可选的链接将跳过对append
的调用。
一种解决方案是在查找给定Int
的值时提供默认数组。
AdsCollectionView.pictures[i, default: []].append(UIImage(named: "noimage")!)
您可能还希望在声明
pictures
时考虑其他语法:static var pictures = [Int: [UIImage]]()
关于ios - 将项目追加到字典中的数组不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51407326/