SwiftUI中如何判断AttributedString是否为空?
判断AttributedString?是否非空的实现逻辑
你需要分两步判断:先确认可选类型不为nil,再检查AttributedString本身的内容是否非空——因为即使AttributedString被初始化(持有样式属性),但文本内容为空时,也应该视为“空”不显示视图。
具体实现代码
直接在视图判断中使用:
if let remark = remark, !remark.isEmpty { // 这里放置需要显示的视图,比如Text Text(remark) }
如果需要复用判断逻辑,可以封装成计算属性:
private var shouldShowRemarkView: Bool { guard let remark = remark else { return false } // 检查AttributedString是否有实际文本内容 return !remark.isEmpty } // 视图中使用 if shouldShowRemarkView { Text(remark!) }
补充说明
从你提供的LLDB调试输出看,remark是一个非nil的AttributedString(标记为some),但它可能仅包含样式属性(比如字体、颜色)而没有实际文本内容。AttributedString的isEmpty属性会同时考虑文本内容是否为空,正好符合你“是否有可显示内容”的判断需求。
内容的提问来源于stack exchange,提问作者Vikash Kumar Chaubey
相关产品推荐
相关产品推荐

