RareScrap
RareScrap

Reputation: 589

How to set property value while object initialization outside view lifecycle?

I have a ViewController with 2 fields:

class MyViewController: UIViewController {
    private var dataManager = MyDataManager()
    private var dateFormatter: DateFormatter?

    override func viewDidLoad() {
        super.viewDidLoad()
        dateFormatter.locale = NSLocale.current
        dateFormatter.dateStyle = .medium
    }
}

How can I initialize dateFormatter outside viewDidLoad() like dataManager does?

Upvotes: 0

Views: 41

Answers (1)

matt
matt

Reputation: 535566

Use a define and call initializer.

private let dateFormatter: DateFormatter = {
   let d = DateFormatter()
   d.locale = NSLocale.current
   d.dateStyle = .medium
   return d
}()

Upvotes: 3

Related Questions