编译器无法在合理的时间内对该表达式进行类型检查
Posted
技术标签:
【中文标题】编译器无法在合理的时间内对该表达式进行类型检查【英文标题】:The compiler is unable to type-check this expression in reasonable time 【发布时间】:2020-01-26 03:52:54 【问题描述】:在我的 ScrollView 中,我尝试显示从 Internet 请求收到的预测。 服务器如果没有可用于该特定项目示例的数据,windGust 默认值设置为“0”(字符串)
现在在我的 ScrollView 上,我想隐藏包含零的文本,以便仅显示具有价值的预测项目。
所以我在我的组中放入 if else 状态以检查是否显示文本,但如果我放入超过 3 个 if else 状态,我会收到警告'编译器无法在合理的时间内对这个表达式进行类型检查'
如果有值,我有 10 个 var 要显示。如果它的值不同于“0”,我该如何显示或隐藏
Group
if forecast.change_indicator == "0"
Text(forecast.change_indicator).hidden()
else
Text(forecast.change_indicator)
if forecast.showTimeBecoming == "0"
Text(forecast.change_indicator).hidden()
else
Text(forecast.showTimeBecoming)
if forecast.windGust == "0"
Text(forecast. windGust).hidden()
else
Text(forecast. windGust)
【问题讨论】:
【参考方案1】:尝试将它们分成自己的属性,所以顶部Group
只包含结果,如下所示
var ChangeIndicator : some View
Group
if forecast.change_indicator == "0"
Text(forecast.change_indicator).hidden()
else
Text(forecast.change_indicator)
var ShowTimeBecoming : some View
Group
if forecast.showTimeBecoming == "0"
Text(forecast.showTimeBecoming).hidden()
else
Text(forecast.showTimeBecoming)
// ... << declare similar for each entity
结果
Group
ChangeIndicator
ShowTimeBecoming
// ... << all others follow
【讨论】:
以上是关于编译器无法在合理的时间内对该表达式进行类型检查的主要内容,如果未能解决你的问题,请参考以下文章
编译器无法在 SwiftUI 中的合理时间内对该表达式进行类型检查?
Xcode 编译器错误:编译器无法在合理的时间内对该表达式进行类型检查(Xcode 12.0 SwiftUI)
Xcode 12.0 12A7209 SwiftUI 错误:编译器无法在合理的时间内对该表达式进行类型检查