Ваша первая попытка с ===
потребует, чтобы задачи были классами (===
сравнивает ссылки).Ваша вторая попытка потребует, чтобы задачи были Equatable
.Однако, даже если вы реализуете Equatable
, не рекомендуется использовать ==
, чтобы проверить, является ли задача последней в массиве.
То, что вы хотите сделать, обычно выполняется с использованием индекса:
for (offset, myTask) in myTasks.enumerated() {
if offset + 1 == myTasks.count {
}
}
Как правило, это безопаснее, поскольку позволяет избежать проблем, когда один и тот же task
появляется в массиве несколько раз.
Другой вариант - разделить код для обоих случаев (может бытьлучший вариант для вас):
for myTask in myTasks.dropLast() {
// handle all tasks except the last one
}
if let lastTask = myTasks.last {
// handle last task
}