首页 > 解决方案 > 获取:类型“Service_ValetApp”不符合 Xcode 12.5 中的协议“App”

问题描述

我得到一个类型“Service_ValetApp”不符合协议“App”,我从编译器得到一个修复:你想添加协议存根吗?即使文件中已经有一个 init() 。这对我来说似乎是一个错误。如果有人在此之前看到过这一点,我将不胜感激任何和所有的见解。

import SwiftUI

@main
struct 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())
            
          
            
            
        }
    }
}

标签: swiftuiprotocolsxcode12.5

解决方案


类型类型App需要有一个接受零参数的初始化器:

init() {
  //content here
}

您的初始化程序中有一个参数:

init(isInitializing: Binding<Bool>) {

系统正在调用init,但不知道传递什么isInitializing

其次,您@BindingApp--@Binding与子视图一起使用,但这是最顶层的父应用程序组件。

也许您打算改用@State默认值:

@main struct Service_ValetApp: App {
    @State var isInitializing : Bool = true
    
    var body: some Scene {
        WindowGroup {
            MotherView(isInitializing: self.$isInitializing)
                .environmentObject(ViewRouter())
        }
    }
}

推荐阅读