Инициализаторы и деинициализаторы в Swift

Домашняя работа к главе 29

Инициализатор — это специальный метод, выполняющий подготовительные действия при создании экземпляра объектного типа данных. Инициализатор срабатывает при создании экземпляра, а при его удалении вызывается деинициализатор.

Деинициализаторы же являются отличительной особенностью классов. Деинициализатор автоматически вызывается во время уничтожения экземпляра класса. Вы не можете вызвать деинициализатор самостоятельно. Один класс может иметь максимум один деинициализатор. С помощью деинициализатора вы можете, например, освободить используемые экземпляром ресурсы, вывести на консоль журнал или выполнить любые другие действия.

Задание 1

1) Создайте перечисление DayOfWeek, членами которого будут являться дни недели. У каждого члена должно быть связанное целочисленное значение. указывающее на его порядковый номер
2) В составе перечисления создайте проваливающийся (failable) инициализатор, который принимает на вход название дня недели на русском языке и возвращает соответсвующий член перечисления
В случае, если передано некорректное значение, необходимо вернуть nil
3) Создайте переменную с использованием данного инициализатора

Правильный ответ

//1-2
enum DayOfWeek: Int{
    case monday=1, tuesday, wednesday, thursday, friday, saturday, sunday
    init?(_ val:String) {
        switch val {
        case "Понедельник":
            self = .monday
        case "Вторник":
            self = .tuesday
        case "Среда":
            self = .wednesday
        case "Четверг":
            self = .thursday
        case "Пятница":
            self = .friday
        case "Суббота":
            self = .saturday
        case "Воскресенье":
            self = .sunday
        default:
            return nil
        }
    }
}
//3
var monday = DayOfWeek("Понедельник")
monday!.rawValue // 1

 

Добавить комментарий