Item 16: Have a Designated Initializer
All objects need to be initialized. When initializing an object, you sometimes don’t need to give it any information, but often you do. This is usually the case if the object cannot perform its action without knowing this information. An example from UIKit, the iOS UI framework, is All