Swift - 在markdown中渲染具有相对路径的图像

时间:2016-01-06 11:46:47

标签: ios swift image markdown

我按照以下方式保存图片:

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来渲染包含嵌入图像的文本。网址工作正常,但我无法找到保存图像的正确相对路径。它确实得到了妥善保存。

我已经尝试了以下所有方法:

  • ![Alt text](1.png)
  • ![Alt text](Documents/1.png)
  • ![Alt text](/Users/me/Library/Developer/CoreSimulator/Devices/993FB5AC-etc/data/Containers/Data/Application/8F8A924A-etc/Documents/1.png)

有更好的地方可以保存下载的图片吗?如何找到保存图像的相对路径?

1 个答案:

答案 0 :(得分:0)

我知道这可能不是您正在寻找的最直接的答案,但可以解决您的问题。

我已经为NSAttributedString创建了Markdown图像支持,作为优秀CocoaMarkdown库的分支。

可以在这里找到:https://github.com/X8/CocoaMarkdown

它支持解析图像并在设备上缓存它。你可以看到我在CMImageAttachmentManager中使用的方法。

我在使用Swift和Obj-C的项目中使用它,所以它应该没问题。

现在更多地关注你的答案 - 我认为你最好使用一些能够下载和缓存图像的lib,比如SDWebImageHaneke。为什么?它们负责缓存,从长远来看,这将为您的用户节省大量数据。而且,它们是经过测试和可靠的一段代码。