有时应用程序崩溃,将HTML属性转换为属性字符串的NSAttributedString

问题描述 投票:1回答:1

将html转换为属性字符串时很少崩溃的应用程序。

var htmlToAttributedString: NSAttributedString? {
        guard let data = data(using: .utf8) else { return NSAttributedString() }
        do {
            return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
        } catch {
            return NSAttributedString()
        }
    }
    ```
ios swift nsattributedstring
1个回答
0
投票

不应从后台线程调用HTML导入程序(是,选项字典包含NSDocumentTypeDocumentAttribute的值为NSHTMLTextDocumentType)。

它将尝试与主线程同步,失败并超时。从主线程调用它是可行的(但如果HTML包含对外部资源的引用,仍可能会超时,应不惜一切代价避免这样做)。 HTML导入机制用于实现诸如markdown之类的东西(即,文本样式,颜色等),而不是用于常规HTML导入。

© www.soinside.com 2019 - 2024. All rights reserved.