Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 我如何才能创建一个只运行一次或在ForEach循环之前已经存在的var?_Swift_Xcode_Swiftui - Fatal编程技术网

Swift 我如何才能创建一个只运行一次或在ForEach循环之前已经存在的var?

Swift 我如何才能创建一个只运行一次或在ForEach循环之前已经存在的var?,swift,xcode,swiftui,Swift,Xcode,Swiftui,我已经创建了一个ForEach循环,现在我需要一个在ForEach循环之前已经存在的var。我已经将var放置在基本视图的结构中 我尝试过类似于@State的方法,但问题是重新定义变量会导致延迟。因此,ForEach循环在变量更改之前运行 @State var Bol:Bool = true var DatesThatAreNewer = Date() var body: some View { NavigationView{

我已经创建了一个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对象之外

不知何故,您触发了此视图的显示-为什么不在此触发器中设置日期(例如EnvironmentVariable),然后您就有了DatesRenewer…此问题中缺少很多信息。您是否可以更新您的问题以包含一个。目前无法运行代码,因此任何人提供有意义帮助的能力都是有限的。请提供允许上述代码运行的所有模型、函数和数据。问题还不清楚最终结果应该是什么。