我按照以下方式保存图片:
let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!
let url = NSURL(string:"http://cdn.businessoffashion.com/site/uploads/2014/09/Karl-Lagerfeld-Self-Portrait-Courtesy.jpg")
let data = NSData(contentsOfURL:url!)
if let image = UIImage(data: data!) {
let fileURL = documentsURL.URLByAppendingPathComponent("2.png")
if let pngImageData = UIImagePNGRepresentation(image) {
pngImageData.writeToURL(fileURL, atomically: false)
}
}
我使用Markingbird来渲染包含嵌入图像的文本。网址工作正常,但我无法找到保存图像的正确相对路径。它确实得到了妥善保存。
我已经尝试了以下所有方法:



有更好的地方可以保存下载的图片吗?如何找到保存图像的相对路径?
答案 0 :(得分:0)
我知道这可能不是您正在寻找的最直接的答案,但可以解决您的问题。
我已经为NSAttributedString
创建了Markdown图像支持,作为优秀CocoaMarkdown
库的分支。
可以在这里找到:https://github.com/X8/CocoaMarkdown
它支持解析图像并在设备上缓存它。你可以看到我在CMImageAttachmentManager
中使用的方法。
我在使用Swift和Obj-C的项目中使用它,所以它应该没问题。
现在更多地关注你的答案 - 我认为你最好使用一些能够下载和缓存图像的lib,比如SDWebImage或Haneke。为什么?它们负责缓存,从长远来看,这将为您的用户节省大量数据。而且,它们是经过测试和可靠的一段代码。