SwiftUI报Cannot find 'systemName' in scope错 如何条件切换SFSymbols图标
你代码报错的核心原因是Image(systemName:)的参数标签使用方式不符合Swift语法规范,你把systemName:拆分写到了三元运算符的两个分支里,编译器无法识别合法的参数结构。
正确写法是将systemName:参数标签统一放在三元表达式外层,把图标名称的判断逻辑整体作为参数传入即可:
Image(systemName: aQuestion.upVoters.contains("Foo") ? "shift.fill" : "shift")
额外优化说明:判断字符串数组是否包含指定元素时,不需要写完整的contains(where:)闭包,直接调用contains(_ element: String)方法写法更简洁,运行效果完全一致。
内容的提问来源于stack exchange,提问作者N.Armada
相关产品推荐
相关产品推荐

