这是我的挑战:我有一个结构。这是使用FirebaseDatabase中的documentSnapshot初始化的。 Struct返回一个数组,然后将其填充到“集合视图”中]
这很好,直到我试图将两个图像添加到数组中为止。它们存储在Firebase存储中。初始化时,引用键将传递到结构中(它们在这里,我测试过)。但是,创建myArray时,图像不存在。没有错误信息。 struct / array的所有其他部分都可以正常工作(距离计算等)
感谢任何人的帮助
struct myStruct {
var myArray = [Any]()
init?(Name: String, Amount: String, Description: String, SecondName: String, RID: String, GeoPoint: GeoPoint, DID: String) {
var location = CLLocation()
var myArray = [Any]()
var distance: Double
var imageA = UIImage()
var imageB = UIImage()
let refA = Storage.storage().reference().child("Images").child(todayDate).child(DID)
refA.getData(maxSize: 1000 * 1240 * 1240) { data, error in
if let error = error {
print(error.localizedDescription)
} else {
imageA = UIImage(data: data!)!
}
}
let refB = Storage.storage().reference().child("Icons").child(RID)
refB.getData(maxSize: 1000 * 1240 * 1240) { data, error in
if let error = error { print(error.localizedDescription)
imageB = (UIImage(named: "DefaultIcon.png") as UIImage?)!
} else {
imageB = UIImage(data: data!)!
}
}
location = CLLocation(latitude: GeoPoint.latitude, longitude: GeoPoint.longitude)
distance = round(location.distance(from: userLocation)/10)*10
myArray = [Name, Amount, Description, SecondName, String(Int(distance)), GeoPoint, imageA, imageB]
self.menuItem = menuItem
}
}
这是我的挑战:我有一个结构。这是使用FirebaseDatabase中的documentSnapshot初始化的。 Struct返回一个数组,然后将其填充到“集合视图”中。这很好,...
看来您的结构要完全实例化,需要先等待两个异步数据任务完成(获取图像)。由于您启动了它们,但不必等待它们完成,因此在您将数据写入阵列时,图像数据根本不可用。