В 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.
Тем не менее, я получаю две ошибки синтаксиса.
- Ожидаемое имя члена или вызов конструктора после имени типа.
- () не конвертируется в класс А.
Если я использую
self.init(object: ClassA.init(newNumber: 10))
вместо
self.init(object: ClassA.init())
Тогда первая ошибка исчезает. Кажется, что удобный инициализатор ClassA не распознается.
1 ответ
Решение