Create string of the class name

Summary:

String(describing: Self.self) // "SleepViewController"
String(describing: type(of: self)) // "SleepViewController"
String(describing: self) // "<__lldb_expr_160.SleepViewController: 0x7fec8bf09930>"

Use String(describing: Self.self), which will give you a string such as "SleepViewController".

This is the same as using String(describing: type(of: self)).

However you do not want to use String(describing: self). This gives a much more complex string such as "<__lldb_expr_160.SleepViewController: 0x7fec8bf09930>"

Useful for things like: bundle.loadNibNamed(String(describing: Self.self), owner: self, options: nil)

It means if you want to refactor your class name, you don't need to go around changing loadNibNamed("TimePicker") to loadNibNamed("DateTimePicker"), as String(describing Self.self) will do it for you.