如何修复“函数声明了不透明的返回类型,但主体中没有从其推断基础类型的返回语句”错误?

时间:2019-07-01 03:52:31

标签: swift swiftui

struct ContentView: View {
  var body: some View {
    Print("Hello World")
  }
}

每当我尝试在动作之外使用诸如print或if语句之类的东西(例如使用UserDefaults保存另一个示例的设置)时,它都会给我“函数声明不透明的返回类型”,但其主体中没有可从中推断出基础类型的return语句。”

有了UIKit,您在viewDidLoad()中放入的任何东西都可以完美运行,那么viewDidLoad()是否有类似SwiftUI的东西?如果没有,我将如何执行这些操作(在您说出它们离开身体并将其放入ContentView之前,这只会给我“期望的声明”错误)?

2 个答案:

答案 0 :(得分:0)

如前所述,视图主体 必须 返回一个视图:

struct ContentView : View {
    var body: some View {
        return Text("Hello World")
    }
}

此外,在定义主体时存在大量限制。

没有办法解决。您需要阅读文档,或者至少遵循Apple的这些教程,这些教程很好地结合在一起:

https://developer.apple.com/tutorials/swiftui/tutorials

答案 1 :(得分:-3)

import SwiftUI

struct ContentView : View {
    var body: some View {
        var bodyView: some View {
            Text("Hello World")
        }
        //Put your entire UI in the bodyView, between the bodyView and "return bodyView" you can put what you would as if it was a viewDidLoad() like in UIKit.
        return bodyView
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif