首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URL(fileURLWithPath: snap.urlImage)命令未按预期工作

URL(fileURLWithPath: snap.urlImage)命令未按预期工作
EN

Stack Overflow用户
提问于 2019-10-16 21:07:35
回答 1查看 54关注 0票数 0

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

我使用的是Xcode11.2、Swift4、IOS13、macOS Catalina、SDWebImage (5.2.3)

代码语言:javascript
复制
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可以正常工作(我可以复制/粘贴到我的浏览器并下载图片)。

以下是上述代码的结果: file:/// (“url 1 (url) - end") result 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- end

print(“URL2 (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 - end

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

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

有谁知道发生了什么事吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-10-17 01:14:31

代码语言:javascript
复制
init(fileURLWithPath path: String)

初始化一个新创建的文件URL,该文件URL引用path中的本地文件或目录。

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

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

代码语言:javascript
复制
let urlToImage = URL(string: snap.urlImage)

请记住,这将返回一个可选的,因此最好像这样保护您的代码

代码语言:javascript
复制
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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58414082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档