Не удается преобразовать значение типа '(_) -> ()' в ожидаемый тип аргумента '(() -> Void)?'
Я перенес свой код из Swift 2 в Swift 4, однако я не уверен, почему я получаю эту ошибку:
Не удается преобразовать значение типа '(_) -> ()' в ожидаемый тип аргумента '(() -> Void)?'
Это моя функция:
fileprivate func navigateToTagFriends(completion: @escaping (_ taggedUsers : [Athlete]?) -> Void) {
// Tag Users when item is original content
if self.parentContent == nil {
self.state = .finished // Mark as finished so friends operation will execute
if let tagController = UIStoryboard(type: .Capture).instantiateInitialViewController() as? TagViewController {
tagController.tagCompletionBlock = { taggedUsers in
self.presentingViewController?.dismiss(animated: true, completion: {_ in
if let processingView = Bundle.main.loadNibNamed("ProcessingView", owner: self, options: nil)?[0] as? UIView {
let size = self.presentingViewController?.view.frame.size
processingView.frame = CGRect(x: 0, y: 0, width: size?.width ?? 0, height: size?.height ?? 0)
self.processingView = processingView
self.presentingViewController?.view.addSubview(processingView)
}
completion(taggedUsers)
})
}
tagController.cancelBlock = {
self.presentingViewController?.dismiss(animated: true, completion: nil)
}
tagController.transitioningDelegate = self
self.presentingViewController?.present(tagController, animated: true, completion: nil)
}
} else {
completion(nil)
}
}
Кто-нибудь знает, почему я получаю это и как я могу устранить ошибку?
1 ответ
Решение
Удалить _ in
с линии:
self.presentingViewController?.dismiss(animated: true, completion: {_ in
На основе документов dismiss
, completion
обратный вызов не принимает никаких параметров.