Дополнительные закрытия в Swift 5 - PullRequest
0 голосов
/ 04 апреля 2020

Мне было трудно понять, как написать дополнительное закрытие для swift 5. Я нашел много объяснений, которым несколько лет, и, похоже, ни одно из них не работает сейчас. Я пробовал:

func test(completion: (() -> Void)?){
    completion()
}

и другие варианты этого. Любая помощь очень ценится.

1 Ответ

2 голосов
/ 04 апреля 2020

Я предполагаю, что когда вы говорите «как написать необязательное замыкание», вы имеете в виду «как вызвать необязательное замыкание», потому что вы написали параметр замыкания просто отлично, но вы просто неправильно вызывать его.

Чтобы вызвать необязательное закрытие, сначала нужно развернуть его. Либо:

completion?()

или:

if let unwrappedCompletion = completion {
    unwrappedCompletion()
}
...