我正在尝试使用苹果文档中描述的“contentsOfFile”方法在UIImageView中加载LCR图像,但是我收到了nil图像的错误。任何人都可以确认我们如何从服务器加载LCR图像?
我正在使用的代码:
UIImage(contentsOfFile: "LCR file url")
我在控制台中遇到错误:
BOMStorage BOMStorageOpenWithSys(const char,Boolean,BomSys):不能 open:'/ LCR file url'没有这样的文件或目录
我注意到的一件事是它在我的实际网址前添加了“/”。我认为这是因为它在本地存储中寻找文件。有谁知道它的解决方案是什么?
我甚至试图用这个:
下载的文件 - 使用imageWithContentsOfFile加载图像:
但没用:(
答案 0 :(得分:2)
好的,我找到了解决这个问题的工作。所以如果其他人遇到同样的问题,我会在这里发帖。以下是代码说明:
if let url = NSURL(string: "https://.lcr-file-url") {
if let data = NSData(contentsOfURL: url){
let documents = NSURL(string: NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)[0])
let writePath = documents!.URLByAppendingPathComponent("file.lcr")
data.writeToFile(writePath.absoluteString, atomically: true)
let image = UIImage(contentsOfFile: writePath.absoluteString)
}
}
基本上我们需要下载图像数据并将其保存在一些本地文件中,并使用contentsOfFile方法获得实际图像。
如果其他人知道比这更好的解决方案,我会很高兴听到:)
答案 1 :(得分:0)
contentsOfFile
假设您传递的是本地文件的路径,而不是某个远程服务器上托管的映像的URL。
您应该在这里做的是将数据加载到NSData对象中,然后通过UIImage(withData: dataFromServer)
将其传递给UIImage。
同步进行:
if let url = NSURL(string: "http://www.apple.com/euro/ios/ios8/a/generic/images/og.png") {
if let data = NSData(contentsOfURL: url){
let yourImage = UIImage(data: data)
}
}
的代码