मैं स्विफ्ट के साथ छवियों को प्रदर्शित और सहेजने की कोशिश कर रहा हूं। पहली हिट पर, यह इमेजव्यू पर रिमोट इमेज दिखाता है, दूसरी हिट पर यह रिक्त इमेजव्यू दिखाता है इसके बजाय यह स्थानीय छवि होना चाहिए जो पहली हिट पर सहेजा जाता है।स्विफ्ट के साथ एक दूरस्थ छवि को कैसे सहेजने के लिए?
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var imagePath = paths.stringByAppendingPathComponent("images/\(id)/logo.jpg")
var checkImage = NSFileManager.defaultManager()
if (checkImage.fileExistsAtPath(imagePath)) {
let getImage = UIImage(contentsOfFile: imagePath)
self.image?.image = getImage
} else {
dispatch_async(dispatch_get_main_queue()) {
let getImage = UIImage(data: NSData(contentsOfURL: NSURL(string: remoteImage)))
UIImageJPEGRepresentation(getImage, 100).writeToFile(imagePath, atomically: true)
self.image?.image = getImage
}
}
संपादित करें: यह मेरे लिए काम करता है।
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var dirPath = paths.stringByAppendingPathComponent("images/\(id)")
var imagePath = paths.stringByAppendingPathComponent("images/\(id)/logo.jpg")
var checkImage = NSFileManager.defaultManager()
if (checkImage.fileExistsAtPath(imagePath)) {
let getImage = UIImage(contentsOfFile: imagePath)
self.image?.image = getImage
} else {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) {
checkImage.createDirectoryAtPath(dirPath, withIntermediateDirectories: true, attributes: nil, error: nil)
let getImage = UIImage(data: NSData(contentsOfURL: NSURL(string: remoteImage)))
UIImageJPEGRepresentation(getImage, 100).writeToFile(imagePath, atomically: true)
dispatch_async(dispatch_get_main_queue()) {
self.image?.image = getImage
return
}
}
}
धन्यवाद, मैंने इसे UIImage में बदल दिया (ContentOfFile: imagePath)।लेकिन जब मैं dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0) पर प्रेषण बदलता हूं) यह दूरस्थ छवि भी नहीं दिखा रहा है। – bilmiyore
मैंने अभी आपके कोड में संपादन देखा है ... मैं अपना जवाब अपडेट करूंगा। –
धन्यवाद, मुझे लगता है कि प्रेषण अब बेहतर काम करता है। लेकिन फिर भी मैं स्थानीय रूप से छवियों को लोड नहीं कर सकता। मुझे लगता है कि "var imagePath = paths.stringByAppendingPathComponent (" images/\ (id) /logo.jpg ")" समस्या है क्योंकि "अगर ब्लॉक" बिल्कुल दिखाई नहीं देता है। – bilmiyore