Swift URL(fileURLWithPath:snap.urlImage)命令未按预期工作
我正在构建(学习目的)一个类似于Snapchat的解决方案。这个想法是将图片发送给另一个可以打开它的人。信息被保存到Firebase实时数据库中,一旦接收者单击,就会显示该图像 我使用的是Xcode 11.2、Swift4、IOS13、macOS Catalina、SDWebImage(5.2.3) 保存到Firebase的URL正常且工作正常(我可以复制/粘贴到浏览器并下载图片) 以下是上述代码的结果: 打印(“URL 1(URL)-结束”)结果 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——文件://-end 打印(“URL 2(snap.urlImage)-结束”) -结束 如您所见,在使用URL(fileURLWithPath:snap.urlImage)之后,会在“URL”常量的末尾添加“-file:///” 如果我在sd_setImage行中将url替换为snap.urlImage,它将不起作用(imagem.sd_setImage(with:snap.urlImage)…) 任何人都会知道发生了什么 谢谢 初始化引用本地文件的新创建的文件URL或 路径处的目录 init(fileURLWithPath:)将传入的字符串解释为本地文件路径,我认为您不希望这样。例如,如果您想将该文件写入本地磁盘,您可以使用它 您实际要查找的是服务器上文件的url路径Swift URL(fileURLWithPath:snap.urlImage)命令未按预期工作,swift,firebase,firebase-storage,Swift,Firebase,Firebase Storage,我正在构建(学习目的)一个类似于Snapchat的解决方案。这个想法是将图片发送给另一个可以打开它的人。信息被保存到Firebase实时数据库中,一旦接收者单击,就会显示该图像 我使用的是Xcode 11.2、Swift4、IOS13、macOS Catalina、SDWebImage(5.2.3) 保存到Firebase的URL正常且工作正常(我可以复制/粘贴到浏览器并下载图片) 以下是上述代码的结果: 打印(“URL 1(URL)-结束”)结果 https:/firebasestorage.
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名称<代码>URL图像听起来像是图像或NSImage,而不是路径
imageUrl
会是一个更好的名称,因为它是图像的url。fileURLWithPath
,它是机器中的一条路径(我想你的设备是iPhone)。就像在Mac中一样:~/Documents
。您需要的是URL(字符串:snap.urimage)
。“--file:///”已添加到末尾”,但如果您添加了url.absoluteString
则它位于开头,这就是url
的打印方式。可能存在重复的感谢Larme。。。那很管用,汉克斯。。。好消息
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
}