#swift3 #capture
#swift3 #захват
Вопрос:
Я пытаюсь преобразовать проект из Swift 2.3 в Swift 3. Код перед преобразователем был:
Код в Swift 2.3
..., handler: { [performSegueWithIdentifier] _ in
performSegueWithIdentifier("Help Segue", sender: nil)
}
После преобразования в Swift 3.0 код становится:
..., handler: { [performSegue(withIdentifier:sender:)] _ in
performSegueWithIdentifier("Help Segue", sender: nil)
}
Но у меня ошибка компиляции:
'Expected 'weak', 'unowned', or no specifier in capture list'
Что я пробовал:
- удалите параметры, но кажется, что
Expression type 'Void' (aka '()') is ambiguous without more context
.
Ответ №1:
Ошибка: ‘Тип выражения ‘Void’ …’ относится ко второй строке:
performSegue(withIdenfifier: "Help Segue", sender: nil)
Итак, все станет:
handler: { [performSegue] _ in
performSegue("Help Segue", nil)
})