无法在tvOS应用中加载LCR图像

时间:2015-10-16 12:06:02

标签: swift uiimage tvos

我正在尝试使用苹果文档中描述的“contentsOfFile”方法在UIImageView中加载LCR图像,但是我收到了nil图像的错误。任何人都可以确认我们如何从服务器加载LCR图像?

我正在使用的代码:

UIImage(contentsOfFile: "LCR file url")

我在控制台中遇到错误:

  

BOMStorage BOMStorageOpenWithSys(const char,Boolean,BomSys):不能   open:'/ LCR file url'没有这样的文件或目录

我注意到的一件事是它在我的实际网址前添加了“/”。我认为这是因为它在本地存储中寻找文件。有谁知道它的解决方案是什么?

我甚至试图用这个:

  

下载的文件 - 使用imageWithContentsOfFile加载图像:

但没用:(

2 个答案:

答案 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)
    }
}

我找到in this related question

的代码

And here's a blog post on how to do it asynchronously