Получение: тип Service_ValetApp не соответствует протоколу App в Xcode 12.5
Я получаю сообщение типа «Service_ValetApp», не соответствующее протоколу «Приложение», и я получаю исправление от компилятора: вы хотите добавить заглушки протокола? Хотя у меня уже есть init () в файле. Мне это кажется ошибкой. Если кто-то видел это раньше, я был бы признателен за любые идеи.
импортировать SwiftUI
@mainstruct Service_ValetApp: App {
@Binding var isInitializing: Bool
init(isInitializing: Binding<Bool>) {
self._isInitializing = isInitializing
}
var body: some Scene {
WindowGroup {
MotherView(isInitializing: self.$isInitializing).environmentObject(ViewRouter())
}
}
}
1 ответ
Тип типа должен иметь инициализатор, который принимает нулевые аргументы:
init() {
//content here
}
У вас есть аргумент в вашем инициализаторе:
init(isInitializing: Binding<Bool>) {
Система звонит
init
и не знал бы, что сойти за
isInitializing
.
Во-вторых, у вас есть
App
-
@Binding
используется с дочерними представлениями, но это самый верхний родительский компонент приложения.
Возможно, вы хотели использовать
@State
вместо этого со значением по умолчанию:
@main struct Service_ValetApp: App {
@State var isInitializing : Bool = true
var body: some Scene {
WindowGroup {
MotherView(isInitializing: self.$isInitializing)
.environmentObject(ViewRouter())
}
}
}