You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:39:58