首页 > 解决方案 > SwiftUI 中的惰性属性

问题描述

嗨,我需要帮助制作懒惰的财产。

我有这个代码:

lazy var dateFormat: DateFormatter =
{
    let formatter = DateFormatter()
    formatter.locale = NSLocale.current
    formatter.dateFormat = "dd/MM/YYYY hh:mm"
    return formatter
}()

并且在使用时Text(date, formatter: self.dateFormat)

我收到此错误Cannot use mutating getter on immutable value: 'self' is immutable

标签: iosswiftswiftuiswiftui-form

解决方案


您可以使用静态而不是惰性。

struct Formatter: View {

    var date = Date()

    private static var dateFormat: DateFormatter = {
        let formatter = DateFormatter()
        formatter.locale = NSLocale.current
        formatter.dateFormat = "dd/MM/YYYY hh:mm"
        return formatter
    }()

    var body: some View {
        Text("\(date, formatter: Self.dateFormat)")
    }
}


推荐阅读