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,设置是否为空,或者您是否做了其他错误…它将为零,但我知道有数据显示训练
将为零或锻炼
?