Currently using this for default object initialization in Objective-C

- (instancetype)init
{
    self = [super init];
    if (self) {
        // do init work here, e.g. _myIvar = someParam;
    }
    return self;
}

For example

Player.h

@interface Player : NSObject
- (instancetype)initWithHandler:(Handler *)handler;
@end

Player.m

- (instancetype)initWithHandler:(Handler *)handler
{
    self = [super init];
    if (self) {
        _handler = handler;
    }
    return self;
}