我正在努力弄清楚为什么只有某些图像使用SD Web Image(通过FirebaseStorageUI)从Firebase存储加载。我甚至有两个不同名称的同一图像副本,只有两个负载中的一个,并在分配给我的按钮时出现。所有图像均为.jpg且小于100kb,存储在相同/图像文件夹中。
以下是我从Firebase存储中获取图像的代码,并将其分配给按钮(在按钮数组中):
let imagename = "gs://xxxxxx.appspot.com/images/bruce.jpg"
let reference = FIRStorage.storage().reference(forURL: imagename)
if iDs != nil {
for i in 0..<iDs!.count {
let storageImage = UIImageView()
let placeholderImage = UIImage(named: "fong")
// Load the image using SDWebImage and assign to button
storageImage.sd_setImage(with: reference, placeholderImage: placeholderImage)
self.arbtrButtons[i].setImage(storageImage.image, for: .normal)
答案 0 :(得分:0)
它似乎是由函数范围之外的重复变量名引起的,这导致我的Firebase引用数组在从Firebase分配时为零。加载的唯一图像是在创建重复变量名之前已经兑现的图像。通过一些网络速度,用户数据在变量被分配了一个nil数组之前就已经设置了一次或两次加载,因此我有两个现金图像,而所有其他图像都不会加载。