swift - 我如何能够创建一个只运行一次或在 ForEach 循环之前已经存在的 var?
问题描述
我已经创建了一个 ForEach 循环,现在我需要一个在 ForEach 循环之前已经存在的 var。我已将 var 放在基本视图的结构中。
我已经尝试过类似@State
的事情,但问题是这会导致重新定义变量的延迟。所以 ForEach 循环在变量改变之前运行。
@State var Bol:Bool = true
var DatesThatAreNewer = Date()
var body: some View {
NavigationView{
List{
ForEach(self.dayActivities, id: \.self){dayActivity -> AnyView in
//NewDays(day: dayActivity.date!)
let isNewDay = (dayActivity.date!, formatter: ContentView.self.Day)
if self.Bol{
let DatesThatAreNewer = Date()
}
let oldDateType = self.Bol ? (self.OldDate.asDate, formatter: ContentView.self.Day) : (self.DatesThatAreNewer, formatter: ContentView.self.Day)
//var isOldDate = (oldDateType, formatter: ContentView.self.Day)
print("------------- S1")
print(asStringDate(date: dayActivity.date!))
print(asStringDate(date: self.DatesThatAreNewer))
print("-------------")
self.Bol = false
if (asStringDate(date: dayActivity.date!) == asStringDate(date: self.DatesThatAreNewer)){
print("Hello world 1")
print(oldDateType)
print(isNewDay)
return AnyView(DayActivityView(name: dayActivity.name!, date: dayActivity.date!))
}else{
print("Hello world 2")
print(oldDateType)
print(isNewDay)
print(dayActivity.name!)
DatesThatAreNewer = dayActivity.date!
print(asStringDate(date: self.DatesThatAreNewer))
//isOldDate = isNewDay
return AnyView(Section(header: Text(String(asString(date: dayActivity.date!)))){
DayActivityView(name: dayActivity.name!, date: dayActivity.date!)
}) //create seperator and DayActivityView
}
}
}
.navigationBarTitle(Text("Dag activiteiten"))
.navigationBarItems(leading: EditButton(),trailing:
NavigationLink(destination: ActivityAanmakenView()) {
Text("Toevoegen")
})
}
}
(请原谅我有很多印刷品)
所以基本上我正在寻找一种方法来重新定义 var DatesThatAreNewer,因为现在它说它是不可变的,如果我添加@State
一个延迟就会发生并且代码不再按预期工作。
解决方案
我自己修复了它,您只需将 var 放在 struct 对象之外。
推荐阅读
- python - 如何使用 gekko 估计 FOPDT 方程中的 theta 值?
- haskell - 在 Haskell 的 do 上下文中应用构造函数
- python - 我使用 scipy 的 python 代码抛出了一个值错误
- javascript - 从 JSON 获取 D3 的日期
- amazon-s3 - SSE-KMS 和 SSE-C 的区别
- python - 如何从嵌套字典中按值获取字典键?
- javascript - Angular - 如何使用 API 显示元素并使用复选框进行排序
- seo - 使用动态 slug 时,服务器端渲染如何在 Nuxt 上工作?
- c++ - 如何用矩形制作 2 点角并保持正确的厚度?
- database - 建模多个子表数据库的最佳方法