我应该在哪里放置 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
}
}
}
我应该把下面的代码放在 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
}
}
}