Ошибка может быть улучшена, но проблема с вашей первой версией заключается в том, что у вас есть переменная-член, delegate
, которая не имеет значения по умолчанию. Все переменные в Swift всегда должны иметь значение. Это означает, что вы должны установить его в инициализаторе, которого у вас нет, или вы можете указать ему значение по умолчанию в строке.
Когда вы сделаете это необязательным, вы разрешите ему nil
по умолчанию, устраняя необходимость явно указывать значение или инициализировать его.