如何在不同的源代码文件中组织格式化程序

是否有一种好/好方法来组织在不同文件中重复的格式化程序?我发现自己必须为不同的类实现相同的代码行。我是否应该将重复的代码放在一个单独的文件中并授予其全局访问权限?创建一个可以容纳这些格式化程序的类/结构更好吗?我可能想得太多了,但是我想学习一个好的方法并在我从事不同项目时坚持下去。

例如,重复的代码如下:

let dateFormatter: DateFormatter = {
   let formatter = DateFormatter()
   formatter.dateFormat = "MM/dd/yyyy"
   return formatter
}()
iCMS 回答:如何在不同的源代码文件中组织格式化程序

您可以扩展Formatter类并将日期格式化程序声明为静态属性。这样,您可以在代码中的任何位置访问它们的相同实例。请注意,向用户显示日期时不应使用固定格式。您应该使用日期和时间样式来显示基于用户设备区域设置和设置的本地化。顺便说一句,当使用固定日期格式时,应将语言环境设置为“ en_US_POSIX”:

extension Formatter {
    static let mmddyyyy: DateFormatter = {
        let formatter = DateFormatter()
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateFormat = "MM/dd/yyyy"
        return formatter
    }()
    static let shortDate: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateStyle = .short
        return formatter
    }()
    static let mediumDate: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateStyle = .medium
        return formatter
    }()
}

Formatter.mmddyyyy.string(from: Date())      // "06/24/2020"
Formatter.shortDate.string(from: Date())     // "6/24/20"
Formatter.mediumDate.string(from: Date())    // "Jun 24,2020"
本文链接:https://www.f2er.com/2062892.html

大家都在问