我正在创建一个涉及图片视图的应用,用户首次登录时会将照片上传为他们的照片,如下所示:
let storage = FIRStorage.storage()
let storageRef = storage.referenceForURL("gs:xxxxxxxxxxxxxxxx")
let picRef = storageRef.child("images/" + "myname" + ".jpg")
let data = UIImagePNGRepresentation(pickedImage)
forceUpload(profPicRef, data: data!)
let uploadTask = picRef.putData(data, metadata: nil) { metadata, error in
if (error != nil) {
print(error)
} else {
print("uploaded")
// Metadata contains file metadata such as size, content-type, and download URL.
let downloadURL = metadata!.downloadURL
}
}
}
然后下次他们回到这个视图控制器时,在ViewDidAppear中我有这个代码,应该下载图片并将其放入图片中查看:
picRef.dataWithMaxSize(1 * 4096 * 4096) { (data, error) -> Void in
print("in download")
if (error != nil) {
print(error)
} else {
retPic = UIImage(data: data!)!
然后我将retPic设置为图像视图的图像。问题是,这些方法似乎是随机调用的。当我第一次进入这个视图控制器时,图像视图中没有图片和#34;下载"没有印刷。此外,当我上传图片时,它不会一直上传并且已上传"并不总是打印。在来回切换到此视图控制器之后,它最终似乎随机加载。我想知道为什么这些putData和dataWithMaxSize函数在看似随机的时间被调用,以及如何在我想要它们时强制它们发生。我也有这个问题与快照,并将它们移动到ViewWillAppear似乎工作,但不是在这里。
谢谢!