我应该在哪里放置 DateFormatter() 和 xxx.dateFormat = "xxx" 在 SwiftUI

Where should I put DateFormatter() and xxx.dateFormat = "xxx" in SwiftUI

我应该把下面的代码放在 SwiftUI 的什么地方:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy"

如果我把它放在结构之外...{...},我会得到“顶层不允许使用表达式”

如果我把它放在里面我得到 var body: some View {...} 我得到 Function declares an opaque return type, but has no return statements in its body推断基础类型。

有几种方法。

您可以在视图中创建静态 属性 - 然后您将始终使用相同的格式化程序:

struct ContentView: View {
    static let dateFormatter: DateFormatter = {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd.MM.yyyy"
        return dateFormatter
    }()
    
    ...
}

也可以直接在body中创建一个格式化器然后return一些View:

struct ContentView: View {
    var body: some View {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd.MM.yyyy"
        return VStack {
            ... // use the `dateFormatter` as you wish
        }
    }
}