【问题标题】:URL(fileURLWithPath: snap.urlImage) Command not working as expectedURL(fileURLWithPath: snap.urlImage) 命令未按预期工作
【发布时间】:2019-10-16 13:07:34
【问题描述】:

我正在构建(研究目的)一个类似于 Snapchat 的解决方案。这个想法是将图片发送给可以打开它的另一个人。信息被保存到 Firebase-Realtime-Database 中,一旦被接收者点击,就会显示该图像。

我正在使用 Xcode 11.2、Swift4、IOS13、macOS Catalina、SDWebImage (5.2.3)

override func viewDidLoad() {
super.viewDidLoad()

details.text = snap.description

let url = URL(fileURLWithPath: snap.urlImage)
print("URL 1 \(url) - end")
print("URL 2 \(snap.urlImage) - end")

imagem.sd_setImage(with: url) { (image, error, cache, url) in
 print("Message 1")
}

}

保存到 Firebase 的 URL 可以正常工作(我可以复制/粘贴到我的浏览器并下载图片)。

下面是上面代码的结果: print("URL 1 (url) - end") 结果 https://firebasestorage.googleapis.com/v0/b/snapchat-xxxxx.appspot.com/o/images%252FBA5008FB-7D2E-4091-B995-E37879EAB1A2.jpg%3Falt=media&token=72146333-fe8e-4add-be52-1caf037cd1d6 -- 文件:/// - 结束

print("URL 2 (snap.urlImage) - end") https://firebasestorage.googleapis.com/v0/b/snapchat-xxxxx.appspot.com/o/images%2FBA5008FB-7D2E-4091-B995-E37879EAB1A2.jpg?alt=media&token=72146333-fe8e-4add-be52-1caf037cd1d6 - 结束

如您所见,在使用 URL(fileURLWithPath: snap.urlImage) 之后,在“url”常量的末尾添加了一个“--file:///”。

如果我在 sd_setImage 行中用 snap.urlImage 替换 url,它就不起作用 (imagem.sd_setImage(with: snap.urlImage)...)

有人知道发生了什么吗?

谢谢

【问题讨论】:

  • fileURLWithPath,这是机器中的一条路径(我猜你的设备是 iPhone)。就像在您的 Mac 中一样:~/Documents。你想要的是URL(string: snap.urlImage)。 "" -- file:///" 添加到末尾",但是如果您使用 url.absoluteString 它是在开头,这就是 url 的打印方式。
  • 感谢 Larme... 成功了

标签: swift firebase firebase-storage


【解决方案1】:
init(fileURLWithPath path: String)

初始化引用本地文件的新创建文件 URL 或 路径目录

init(fileURLWithPath:) 将传入的字符串解释为我认为您不需要的本地文件路径。例如,如果您想将该文件写入本地磁盘,则可以使用它。

您真正要查找的是服务器上文件的 url 路径。

let urlToImage = URL(string: snap.urlImage)

请记住,这将返回一个可选项,以便最好地保护您的代码

if let urlToImage = URL(string: snap.urlImage) {
   imagem.sd_setImage(with: urlToImage)...
} else {
   print("could not find file at that url") //or some other error
}

另外,为了便于阅读,我建议使用不同的 var 名称...urlImage 听起来像是图像或 NSImage,而不是路径。 imageUrl 会是一个更好的名字,因为它是图片的 的 URL。

【讨论】:

  • 谢谢...很棒的信息
猜你喜欢
  • 2015-06-24
  • 1970-01-01
  • 2018-09-16
  • 2021-11-25
  • 2020-05-23
  • 2016-09-29
  • 2019-10-31
  • 1970-01-01
相关资源
最近更新 更多