【问题标题】:Need help using a foreach to increment a number in swift ui需要帮助使用 foreach 在 swift ui 中增加一个数字
【发布时间】:2020-01-19 21:56:13
【问题描述】:
ForEach(self.thingobserved.things){ i in
If self.data == i.something {
Count+= 1
}
} 

这是我的代码,每次我输入此代码时它都会告诉我

“无法推断出复杂的闭包返回类型; 添加显式类型以消除歧义”

【问题讨论】:

  • 你可能会混淆 SwiftUI 的 ForEach(一种视图),就像 Collection 的 forEach 一样。您不希望更改 ForEach 视图主体中的值,因为每次重新渲染视图层次结构时都会运行该值。您是想在这里创建一些视图,还是只是想增加集合中的数字?
  • 它并不是那样工作的。 ForEach 不像 for 循环。它是一个在项目集合和显示该项目所需的视图内容之间建立关联的函数。当视图刷新时,没有什么说 ForEach 循环必须遍历所有元素,就像 for 循环一样。相反,它可以变得更聪明,只为self.thingsobserved 的那些自上次评估以来发生变化的成员重绘(重新运行主体)。
  • 是的,我只是想增加这个数字,我不想创建任何视图,但我想知道如何解决我遇到的这个错误

标签: swift foreach swiftui


【解决方案1】:

您要做的只是与创建某些视图无关,因为 ForEach 是一种视图。

for 循环应该足以满足您的要求。

for item in self.thingsObserved.things {
    if self.data == item.something {
        count += 1
    }
}

【讨论】:

    猜你喜欢
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    相关资源
    最近更新 更多