有没有办法从AttributedString
中获取Markdown字符串?我有以下代码:
let text = "**Hello** World!"
let attString = AttributedString(text)
现在我想找回Markdown字符串。我确实看到AttributedString
包含了一个描述调用,试图解决这个问题,但它在结果中添加了一组括号:
print(attString.description)
结果:
**Hello** World! {
}
我想也许有更好的办法。
2条答案
按热度按时间mbzjlibv1#
Markdown是一种构造AttributedString的方法。它不是AttributedString的内部格式。AttributedString可以表示的大多数东西甚至不能在Markdown中表示。在最基本的示例中,AttributedString可以为区域定义确切的字体。在Markdown中没有办法表达这一点。在极端情况下,AttributedString可以表示任何属性,包括在代码中定义的自定义属性,而不仅仅是Foundation定义的属性。
但在你的情况下,我相信混淆是更基本的。所谓的“Markdown”只是字符串。如果你想要它,那么它是用以下方式获取的:
(有点令人惊讶的是,没有
.string
属性。This is because it's more expensive to construct than it looks.)你在这里构建的不是Markdown定义的AttributedString。这需要调用
try AttributedString(markdown: text)
。它只是一个字符串,碰巧有星号在它。如果你真的用Markdown创建了一个格式化的AttributedString,并且需要取回Markdown,你需要自己在一个包含AttributedString和Markdown String的 Package 器类型中跟踪它。cyvaqqii2#
正如@paulo-mattos所建议的,以下是解决方案: