繁体   English   中英

如何分割NSAttributedString

[英]How to split a NSAttributedString

我从rtf文件导入了NSAttributedString,现在我想将其拆分为另一个给定的String。 使用attributedSubstring方法,您将得到一个attributedSubstring作为结果,但是我想在每个部分都将其拆分,另一个String出现在该部分,因此结果应为NSAttributedStrings数组。 例:
var source = NSAttributedString(string: "I*** code*** with*** swift") var splitter = "***" var array = //The method I am looking for结果应为以下Array( with attributedStrings):[I,code,with,swift]

以下扩展方法使用Array.map将字符串组件Array.map[NSAttributedString]

extension NSAttributedString {
    func components(separatedBy string: String) -> [NSAttributedString] {
        var pos = 0
        return self.string.components(separatedBy: string).map {
            let range = NSRange(location: pos, length: $0.count)
            pos += range.length + string.count
            return self.attributedSubstring(from: range)
        }
    }
}

用法

let array = NSAttributedString(string: "I*** code*** with*** swift").components(separatedBy: "***")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM