String
に変換する場合は、を使用して、String
のコンテンツの長さを見つけました。いくつかの操作を行う必要があります。HTMLタグを文字列に変換する
マイmodal
クラス、
class PostViewModel {
var content: TextContent
enum TextContent {
case expanded(String)
case collapsed(String)
static func == (lhs: TextContent, rhs: TextContent) -> Bool {
switch lhs {
case .collapsed(let content):
if case collapsed(content) = rhs {
return true
}
return false
case .expanded(let content):
if case expanded(content) = rhs {
return true
}
return false
}
}
}
}
と私はcellForItem(at index: Int)
でこの関数を呼び出しています、
func applyVerticalSizeConcernedRendering(fromViewModel viewModel: PostViewModel) {
switch viewModel.content {
case .collapsed(let content):
let str = content.html2String
print(str)
case .expanded(let content):
break
}
}
html2String
がString
extension String {
var html2AttributedString: NSMutableAttributedString? {
guard let data = data(using: String.Encoding.utf8) else { return nil }
let attrs: [String: Any] = [
NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue
]
do {
let attrStr = try NSMutableAttributedString(data: data, options: attrs, documentAttributes: nil)
return attrStr
} catch let error as NSError {
print(error.localizedDescription)
return nil
}
}
var html2String: String {
return html2AttributedString?.string ?? ""
}
}
のextension
クラスでの問題は、それはしばらくのクラッシュだです〜する、それは、ここに
let attrStr = try NSMutableAttributedString(data: data, options: attrs, documentAttributes: nil)
をクラッシュだとString
は以下
空ではありませんString
にHTMLタグを例HTML String
さrting
<strong>I want to test HTML Tags<br><\/strong>dsfhjdjf sjdfdj djfjdfj djkf dfjdhf <strong>adjf<br>asks <\/strong>djfdkf<br><strong>dfdjk dkfjdk <\/strong>dfjik iai <strong>adsfhj<\/strong>
これは時に正常に動作しています私はハードコードの値で試しましたが、それは私がを取得するときにクラッシュしているenum
からクラッシュログは、
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
で誰もがこれで助けてくださいことはできますか?
例外ブレークポイントを追加して、どのラインでエラーが発生したかを確認できますか? – TMob
@TMob私は質問で編集しました。ちょうどそれが壊れています –
変換しようとしているHTML文字列が空である可能性はありますか? –