我正在为我的应用使用Firebase Storage.在我的应用中,用户有个人资料,可以上传个人资料照片,然后当他们将来点击他们的个人资料时,它应该下载并显示他们的个人资料照片.问题是,当我上传和下载照片时,会出现明显的延迟,并且看起来代码没有运行.对于下载,我在我的ViewWillAppear()中进行了调用,但是即使在屏幕加载并且我点击其他内容后它仍然继续运行.我怎样才能加快速度呢?不仅延迟很烦人,而且当我移动到另一个视图或注销并且ViewWillAppear()中的代码仍在运行时它会导致崩溃.
override func viewWillAppear(bool: Bool) { var retPic : UIImage let storage = FIRStorage.storage() let storageRef = storage.referenceForURL("gs://project-xxxxxxxxxxx.appspot.com") let profPicRef = storageRef.child("images/" + (FIRAuth.auth()?.currentUser?.uid)! + ".jpg") // Download in memory with a maximum allowed size of 1MB (1 * 1024 * 1024 bytes) profPicRef.dataWithMaxSize(1 * 4096 * 4096) { (data,error) -> Void in if (error != nil) { print(error) } else { // Data for "images/island.jpg" is returned print("This is delayed") self.retPic = UIImage(data: data!)! self.imageView.image = self.retPic print("still here") self.imageView.reloadInputViews() } } }
解决方法
它很可能是a的组合:a)你要下载的数据有多大,b)你在哪种网络上,c)你所在的位置,以及d)你对“慢”的定义是什么是.