小编Ali*_*12s的帖子

在 Xcode 12 中使用 @main

我想在 iOS 13 及更高版本上运行此代码我应该如何修复此错误?我想让这段代码也可以在 iOS 13 上运行。

@available(iOS 14.0, *)
@main

struct WeatherProApp: App {
  @Environment(\.scenePhase) private var scenePhase
  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

  
  var body: some Scene {
    WindowGroup{
      let fetcher = WeatherFetcher()
      let viewModel = WeeklyWeatherViewModel(weatherFethcer: fetcher)
      WeeklyWeatherView(viewModel: viewModel)
    }
    .onChange(of: scenePhase) { (newScenePhase) in
      switch newScenePhase {
      case .active:
        print("scene is now active!")
      case .inactive:
        print("scene is now inactive!")
      case .background:
        print("scene is now in the background!")
      @unknown default:
        print("Apple must have added something new!")
      }
    }
  }
} …
Run Code Online (Sandbox Code Playgroud)

swift swiftui ios14 xcode12

7
推荐指数
3
解决办法
5999
查看次数

无法分配给属性:“ $ text”是不可变的

我想在SwiftUI中创建一个自定义文本字段来处理第一响应者,但是我在代码中遇到此错误,并且struct是不可变的,我不知道该怎么办?

struct CustomTextField: UIViewRepresentable {
class Coordinator: NSObject, UITextFieldDelegate {

    @Binding var text: String
    var didBecomeFirstResponder = false

    init(txt: Binding<String>) {
        self.$text = txt
    }

    func textFieldDidChangeSelection(_ textField: UITextField) {
        text = textField.text ?? ""
    }

}

@Binding var text: String
var isFirstResponder: Bool = false

func makeUIView(context: UIViewRepresentableContext<CustomTextField>) -> UITextField {
    let textField = UITextField(frame: .zero)
    textField.delegate = context.coordinator
    return textField
}

func makeCoordinator() -> CustomTextField.Coordinator {
    return Coordinator(txt: $text)
}

func updateUIView(_ uiView: UITextField, context: UIViewRepresentableContext<CustomTextField>) {
    uiView.text …
Run Code Online (Sandbox Code Playgroud)

swiftui

4
推荐指数
1
解决办法
323
查看次数

标签 统计

swiftui ×2

ios14 ×1

swift ×1

xcode12 ×1