Swift中如何从AttributedString获取原始Markdown字符串?
从AttributedString还原Markdown字符串的方法
直接调用AttributedString的description方法会附带属性描述的大括号,无法得到纯净的Markdown内容。你可以通过以下两种方式实现还原:
方法一:使用Swift原生的markdownRepresentation
利用AttributedString的markdownRepresentation()方法直接生成Markdown格式的字符串,代码示例:
let text = "**Hello** World!" let attString = AttributedString(text) do { let markdownString = try attString.markdownRepresentation().string print(markdownString) // 输出:**Hello** World! } catch { print("转换失败:\(error)") }
方法二:通过NSAttributedString转换
将AttributedString转为NSAttributedString后,利用其data(from:documentAttributes:)方法导出Markdown格式的数据,再转为字符串:
let text = "**Hello** World!" let attString = AttributedString(text) let nsAttString = NSAttributedString(attString) do { let markdownData = try nsAttString.data( from: NSRange(location: 0, length: nsAttString.length), documentAttributes: [.documentType: NSAttributedString.DocumentType.markdown] ) if let markdownString = String(data: markdownData, encoding: .utf8) { print(markdownString) // 输出:**Hello** World! } } catch { print("转换失败:\(error)") }
注意:实际开发中建议使用do-catch处理转换可能出现的错误,避免强制解包导致崩溃。
内容的提问来源于stack exchange,提问作者reza23
相关产品推荐
相关产品推荐

