В Swift получить синтаксическую ошибку в удобном инициализаторе при создании объекта

Я немного знаю о том, как использовать удобный инициализатор и назначенный инициализатор. Вот пример класса под названием ClassA

class ClassA {
    var number:Int

    convenience init(){
        self.init(newNumber: 10)
    }

    init(newNumber: Int) {
        self.number = newNumber;
    }
}

Этот класс работает хорошо, но у меня возникли проблемы при реализации другого класса с именем Base. Вот код:

class Base {
    var classObject:ClassA

    init(object: ClassA) {
        self.classObject = object
    }

    convenience init(){
        self.init(object: ClassA.init())
    }
}

В удобном инициализаторе класса Base я вызываю удобный инициализатор ClassA и принимаю его в качестве аргумента назначенного инициализатора Base.

Тем не менее, я получаю две ошибки синтаксиса.

  1. Ожидаемое имя члена или вызов конструктора после имени типа.
  2. () не конвертируется в класс А.

Если я использую

self.init(object: ClassA.init(newNumber: 10))

вместо

self.init(object: ClassA.init())

Тогда первая ошибка исчезает. Кажется, что удобный инициализатор ClassA не распознается.

1 ответ

Решение

Попробуй использовать self.init(object: ClassA())

Другие вопросы по тегам