मैं स्विफ्ट विकास के लिए काफी नया हूं, और सोच रहा हूं कि छवि को दिखाने में इतना समय क्यों लग रहा है। यह एक 4.44kb छवि है जिसका URL एक फायरस्टोर दस्तावेज़ में संग्रहीत है। प्रदर्शित होने में एक सेकंड का समय लगता है, जो UX के लिए बहुत अच्छा नहीं है। जैसा कि मैंने कहा, छवि (एक बारकोड) सिर्फ 4.44kb है, जो मुझे आश्चर्यचकित करता है कि उदाहरण के लिए Instagram या Facebook से एक छवि लोड करना इस छवि को लोड करने से तेज़ क्यों है।

मेरा कोड:

मेरे विचार मेंडिडलोड:

dbRef.getDocument { (document, err) in
        if let e = err {
            print("Error retrieving document: \(e)")
        } else {
            let data = document?.data()
            
            if let imageURL = data?[K.User.barcodeImage] as? String {
                // let url = URL(fileURLWithPath: imageURL)
                let url = NSURL(string: imageURL)
                self.downloadImage(from: url as! URL)
                let number = data![K.User.barcodeNumber] as! String
                self.cardNumber.text = number
                UserDefaults.standard.set(number, forKey: K.User.barcodeNumber)
                UserDefaults.standard.synchronize()
            }
            
            
        }
    }

बाकी का:

func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
    URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
}

func downloadImage(from url: URL) {
    getData(from: url) { data, response, error in
        guard let data = data, error == nil else { return }
        DispatchQueue.main.async() { [weak self] in
            self?.cardCode.image = UIImage(data: data)
        }
    }
}

क्या इसका डिस्पैचक्यू से कोई लेना-देना है? आपका अग्रिम में ही बहुत धन्यवाद!

0
M. Tol 17 अगस्त 2020, 17:20

1 उत्तर

सबसे बढ़िया उत्तर

1 सेकंड की विलंबता अनुचित नहीं है लेकिन आप firebase संग्रहण / GCS बकेट को बेहतर बनाने के लिए प्रदर्शन।

0
Andres S 17 अगस्त 2020, 23:45