![](/img/trans.png)
[英]How to split a NSAttributedString into an Array of 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.