Arrays 快速显示数组中以前输入的项目

Arrays 快速显示数组中以前输入的项目,arrays,swift,uitableview,sorting,core-data,Arrays,Swift,Uitableview,Sorting,Core Data,我正在尝试显示当前训练中输入的运动属性。如果我参加上一次训练,所有内容都会显示,但当我参加当前训练时,不会显示上一次训练的属性,日期标签只显示今天的日期,而不会显示上一次训练的日期。以下是该问题的两个功能。如果我需要发布更多,请告诉我 func lastWorkout() -> Workout? { if let client = currentClient(), let currentWorkout = currentWorkout(), let workouts = clie

我正在尝试显示当前训练中输入的运动属性。如果我参加上一次训练,所有内容都会显示,但当我参加当前训练时,不会显示上一次训练的属性,日期标签只显示今天的日期,而不会显示上一次训练的日期。以下是该问题的两个功能。如果我需要发布更多,请告诉我

 func lastWorkout() -> Workout? {
    if let client = currentClient(), let currentWorkout = currentWorkout(), let workouts = client.workouts as? Set<Workout> {
        // get all this client's workouts in cronological order
        let sortedWorkouts = workouts.sorted { (one, two) -> Bool in
            let scheduledTimeOfOne = one.appointment?.scheduled ?? Date(timeIntervalSince1970: 0)
            let scheduledTimeOfTwo = two.appointment?.scheduled ?? Date(timeIntervalSince1970: 0)
            return scheduledTimeOfOne > scheduledTimeOfTwo
        }
        // get the index of this workout
        let indexOfTodaysWorkout = sortedWorkouts.index(of: currentWorkout) ?? 0
        // go back one workout to find the last workout completed
        let lastWorkout: Workout? = (indexOfTodaysWorkout - 1) < 0 ? nil : sortedWorkouts[indexOfTodaysWorkout - 1]
        // and return
        return lastWorkout
    }
    return nil
}

/// Last Exercise Info to load previous exercise data
func lastExercise() -> Exercise? {
    guard let selectedExercise = currentExerciseInfo() else{
        return nil
    }
    if let exercises = lastWorkout()?.exercises as? Set<Exercise>, let pastExercise = exercises.first(where: { $0.exerciseInfo == selectedExercise }) {
        return pastExercise
    }
    return nil
}
func lastWorkout()->训练?{
如果让客户端=当前客户端(),让当前训练=当前训练(),让训练=客户端。训练设置为{
//按时间顺序完成客户的所有训练
让sortedWorkouts=workouts.sorted{(一,二)->Bool-in
设scheduledTimeOfOne=1。约会?计划?日期(时间间隔自1970年起:0)
设scheduledTimeOfTwo=2。约会?计划?日期(时间间隔自1970年起:0)
返回scheduledTimeOfOne>scheduledTimeOfTwo
}
//获取此训练的索引
让INDEXOFTODAYSCOUNT=分类作业。索引(of:Current COUNT)??0
//返回一个训练,查找最后一个已完成的训练
让上次训练:训练?=(indexOfTodaysWorkout-1)<0?无:分类训练[indexOfTodaysWorkout-1]
//返回
返回上次训练
}
归零
}
///加载上一个练习数据的上一个练习信息
func lastExecution()->练习?{
guard让selectedExercise=currentExerciseInfo()其他{
归零
}
如果让exercises=lastWorkout()?.exercises作为?集,则让pastExercise=exercises.first(其中:{$0.exerciseInfo==selectedExercise}){
回程巴氏运动
}
归零
}

因此在上次训练功能中阵列计数已关闭。下面是工作函数的外观。我仍然没有显示正确的日期。它只给出了今天的日期

func lastWorkout() -> Workout? {
    if let client = currentClient(), let currentWorkout = currentWorkout(), let workouts = client.workouts as? Set<Workout> {
        // get all this client's workouts in cronological order
        let sortedWorkouts = workouts.sorted { (one, two) -> Bool in
            let scheduledTimeOfOne = one.appointment?.scheduled ?? Date(timeIntervalSince1970: 0)
            let scheduledTimeOfTwo = two.appointment?.scheduled ?? Date(timeIntervalSince1970: 0)
            return scheduledTimeOfOne > scheduledTimeOfTwo
        }
        // get the index of this workout
        let indexOfTodaysWorkout = sortedWorkouts.index(of: currentWorkout) ?? 0
        // go back one workout to find the last workout completed
        let lastWorkout: Workout? = sortedWorkouts.count < 2 ? nil : sortedWorkouts[indexOfTodaysWorkout + 1]
        // and return
        return lastWorkout
    }
    return nil
}
func lastWorkout()->训练?{
如果让客户端=当前客户端(),让当前训练=当前训练(),让训练=客户端。训练设置为{
//按时间顺序完成客户的所有训练
让sortedWorkouts=workouts.sorted{(一,二)->Bool-in
设scheduledTimeOfOne=1。约会?计划?日期(时间间隔自1970年起:0)
设scheduledTimeOfTwo=2。约会?计划?日期(时间间隔自1970年起:0)
返回scheduledTimeOfOne>scheduledTimeOfTwo
}
//获取此训练的索引
让INDEXOFTODAYSCOUNT=分类作业。索引(of:Current COUNT)??0
//返回一个训练,查找最后一个已完成的训练
让上次训练:训练?=分类训练。计数<2?无:分类训练[索引今日训练+1]
//返回
返回上次训练
}
归零
}

让我们知道它何时起作用,何时不起作用,您是否从这些方法中的任何一种返回
nil
,如果是,当…打开当前作业时它返回nil,然后检查它为什么返回nil,设置是否为空,或者您是否做了其他错误…它将为零,但我知道有数据显示
训练
将为零或
锻炼