Я получаю эту ошибку:
Значение необязательного типа '((RestTime) -> ())?'должен быть развернут в значение типа '(RestTime) -> ()'
Я вызываю функцию из VC:
let calculateSegmentDirections = CalculateSegmentDirections(locationManager: locationManager)
calculateSegmentDirections.calculateSegmentDirections(index, time: time, routes: routes, loc: loc) { restTime in
print("4")
}
func calculateSegmentDirections(_ index: Int, time: TimeInterval, routes: [MKRoute], loc: LocationModel, completion: ((_ restTime: RestTime) -> ())?) {
print("1")
if let routeResponse = response?.routes {
print("2")
self.calculateSegmentDirections(index+1, time: timeVar, routes: routesVar, loc: restLocation, completion: nil)
} else {
let restTime = RestTime(objectID: restLocation.objectID, time: timeVar, routes: routesVar)
print("3")
completion(restTime)
}
}
Функция в полной форме вызываетсяиз VC, затем перебирает себя, чтобы создать маршрут из MKdirections.Мой вопрос, могу ли я использовать дополнительный обработчик завершения таким образом?
консоль печатает 1, 2, 1, 3, как ожидалось, но затем не вызывает завершение.4 никогда не увольняют.завершение = ноль, поэтому, когда я распаковываюсь, если завершение = завершение, оно не работает.
Кроме того, завершение? (restTime) не работает, равно как и установка по умолчанию на ноль, как при проверке с печатью(завершение) = ноль.
Догадывается, что происходит: обработчик первого завершения "завершает функцию", следовательно, второй не срабатывает?Я передаю нулевое значение, а не запускаю его?
Извинения, если это просто, Google пурпурный и все еще не уверен, что я делаю неправильно.