2015-10-16 38 views
2

我试图在UIImageView中使用“contentsOfFile”方法加载LCR图像,如苹果文档中所述,但是出现无图像的错误。任何人都可以请确认我们如何可以从服务器加载LCR图像?无法在tvOS应用程序中加载LCR图像

代码我使用:

UIImage(contentsOfFile: "LCR file url") 

错误我在控制台收到:

BOMStorage BOMStorageOpenWithSys(常量字符,布尔,BomSys):不能 开:“/ LCR文件url'没有这样的文件或目录

我注意到的一件事是它增加了“/”在我的实际网址前面。我认为它是因为它在本地存储中查找文件。有谁知道最新的解决方案吗?

我甚至试图用这样的:使用imageWithContentsOfFile

下载文件加载图像:

,但没有使用:(

回答

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方法有实际的图像。

如果其他人知道比这更好的解决方案,我会很高兴听到:)

0

contentsOfFile假设你沿着一条路径传递给本地文件,而不是某个远程服务器上托管的映像的网址。

您应该在这里执行的是加载数据转换成一个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的代码。

+0

你读过这个问题吗?我问的LCR图像不是.PNG :( 如果我使用此代码与LCR我得到零图像:/ – sanjana

+0

是的,我其实是读你的问题。LCR和PNG图像都由UIImage处理[如果你查看tvOS应用程序编程指南中的“合并视差图像”部分](https://developer.apple.com/library/prerelease/tvos/documentation/General/Conceptual/AppleTV_PG/CreatingParallaxArtwork.html#//apple_ref/ doc/uid/TP40015241-CH19-SW1),看起来你需要首先***下载图像。无论如何,'contentsOfFile:'预计到本地文件的路径,而不是文件的URL存储在远程服务器上为什么不尝试我使用lcr URL建议的技术? –

+0

我试过了,但是当我将数据转换成图像时,它给了我nil:( – sanjana

相关问题