【发布时间】:2018-02-01 00:12:59
【问题描述】:
假设我有 Date 属性的课程
class SomeModel {
..some properties
let date: Date = Date(timeIntervalSince1970: 1505050)
..more properties
}
我需要使用这个转换(或任何其他,只是示例)来显示它
func createString(from date: Date) -> String {
let formatter = DateFormatter()
formatter.dateFormat = "MM dd yyyy HH:mm:ss"
let stringifyDate = formatter.string(from: model.applicationDate)
let monthSymbols = formatter.shortMonthSymbols
let monthIndex = Calendar.current.component(.month, from: model.applicationDate)
let monthName = monthSymbols![monthIndex-1]
return monthName + String(stringifyDate.dropFirst(2))
}
使用 Model-View-Presenter 模式,我应该将SomeModel 传递给View 并在那里执行转换,因为其他属性是String/Int 和它会更容易很容易显示它们。或者我应该为每个SomeModel 字段创建属性
var someText: String {
return model.someText
}
var stringDate: String {
return createString(from: model.date)
}
..other properties
然后拨打updateUIlike
func updateUI() {
someLabel.text = presenter.someText
dateLabel.text = presenter.stringDate
..other properties
}
或者甚至可以将两者结合起来,但这听起来很糟糕,因为View 无论如何都会获得Date 属性。
【问题讨论】:
标签: ios swift architecture mvp