要缓存的Swift图像
我正在分析数据并检查图像是否在缓存中。如果是,则将其设置为默认值,如果不是,则将其设置为默认值并发送到缓存 将其发送到缓存的部分一直给出零 任何帮助都将不胜感激 Pic_STR=“”+Pic+”.jpg“ 让url=url(字符串:Pic_STR)要缓存的Swift图像,swift,image,caching,Swift,Image,Caching,我正在分析数据并检查图像是否在缓存中。如果是,则将其设置为默认值,如果不是,则将其设置为默认值并发送到缓存 将其发送到缓存的部分一直给出零 任何帮助都将不胜感激 Pic_STR=“”+Pic+”.jpg“ 让url=url(字符串:Pic_STR) 如果让imageFromCache=imageCache.object(forKey:Pic_STR as AnyObject)作为?UIImage{ data.photo=imageFromCache 返回 }否则{ data.photo=UIIm
如果让imageFromCache=imageCache.object(forKey:Pic_STR as AnyObject)作为?UIImage{
data.photo=imageFromCache
返回
}否则{
data.photo=UIImage(名为“默认”)
让imageCache=NSCache()
URLSession.shared.dataTask(带:url!){数据、响应、中的错误
guard let data=data,error==nil else{return}
让imageToCache=UIImage(数据:数据)
setObject(imageToCache!,forKey:self.Pic_STR作为NSString)
//self.image=imageToCache
}1.简历()
}
经过多次试验,我终于找到了解决办法。我相信它可以改进,但它是有效的。我更喜欢使用扩展,但不知道如何使用
struct imageData {
let image: UIImage?
let name: String?
}
var newImage = UIImage()
var myImages = [imageData]()
let imageString= "https://myserver/Pictures/" + Pic + ".jpg"
let imageURL = URL(string: imageString)
CON2 = false
for pics in myImages {
if pics.name == Pic {
data.photo = pics.image
CON2 = true
}
}
if CON2 == false {
let data2 = try? Data(contentsOf: imageURL!)
if let imageData = data2 {
newImage = UIImage(data: imageData)!
}
let newData = imageData(image: newImage, name: Pic) as imageData
myImages += [newData]
data.photo = newImage
}
您需要将
imageCache
对象声明为视图控制器的属性,或将其声明为单例的属性。是的,声明该对象已消除错误,但代码仍不工作,ATS失败的系统信任,ATS失败的系统信任,TIC SSL Trust Errortry在信息应用程序中设置NSAllowsArbitraryLoads设置NSAllowWarBitraryLoads无效
struct imageData {
let image: UIImage?
let name: String?
}
var newImage = UIImage()
var myImages = [imageData]()
let imageString= "https://myserver/Pictures/" + Pic + ".jpg"
let imageURL = URL(string: imageString)
CON2 = false
for pics in myImages {
if pics.name == Pic {
data.photo = pics.image
CON2 = true
}
}
if CON2 == false {
let data2 = try? Data(contentsOf: imageURL!)
if let imageData = data2 {
newImage = UIImage(data: imageData)!
}
let newData = imageData(image: newImage, name: Pic) as imageData
myImages += [newData]
data.photo = newImage
}