Куда мне поместить DateFormatter () и xxx.dateFormat = "xxx" в SwiftUI - PullRequest
1 голос
/ 07 августа 2020

Где мне поместить следующий код в SwiftUI:

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

Если я помещу его вне структуры ... {...} я получаю «Выражения не разрешены на верхнем уровне»

Если я помещаю его внутрь, я получаю var body: some View {...} Я получаю Функция объявляет непрозрачный тип возврата, но не имеет операторов возврата в своем теле, из которых можно вывести базовый тип.

1 Ответ

0 голосов
/ 07 августа 2020

Есть несколько способов сделать это.

Вы можете создать свойство stati c в представлении - тогда вы всегда будете использовать одно и то же средство форматирования:

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

You также можно создать средство форматирования непосредственно в теле, а затем вернуть некоторый вид:

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