Удалите точки пули из NSMutableAttributedString

Я также заметил это в nodejs. Я полагаю (и я допускаю, что это только предположение), что при компиляции кода, если x не появляется внутри bar, он не делает x доступным в области bar. Это, вероятно, делает его несколько более эффективным; проблема заключается в том, что кто-то забыл (или не заботился), что даже если в bar нет x, вы можете решить запустить отладчик и, следовательно, по-прежнему необходимо получить доступ к x изнутри bar.

0
задан r3dm4n 13 July 2018 в 17:05
поделиться

1 ответ

В вашем текущем коде я абсолютно не знаю, что это должно делать:

let bulletPoint: String = "\u{2022}"
let attributedString = NSMutableAttributedString(string: bulletPoint)
formattedString.enumerateAttributes(in: NSRange(0..<attributedString.length), options: []) { (attributes, range, _) -> Void in
    for (attribute, _) in attributes {
        formattedString.removeAttribute(attribute, range: range)
    }
}

Тот факт, что вы используете NSRange(0..<attributedString.length), должен вызвать сбой, если formattedString короче чем attributedString. Это пуля, поэтому у вас не должно быть проблемы, но все же.

Пуля или \u{2022} создается после разбора, поэтому вам нужно проанализировать formattedString.string, что вы могли бы сделать:

let regex = try! NSRegularExpression(pattern: "\\s\u{2022}\\s", options: [])
let matches = regex.matches(in: formattedString.string, options: [], range: NSMakeRange(0, formattedString.string.utf16.count))
matches.reversed().forEach { formattedString.replaceCharacters(in: $0.range, with: "")}

Я не понял, если вы хотите удалить только пули или остальную часть текста (другие пытались с помощью .replacingOccurrences(of: "Click to open image!", with: "") просто убедиться, что вы действительно смогли достичь этой линии и удалить подстроки или нет.

1
ответ дан Larme 17 August 2018 в 12:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: