#import @interface BankAccount : NSObject @property (copy) NSString *name; @property (copy) NSDecimalNumber *balance; - (id)initWithName:(NSString *)name; - (id)initWithBalance:(NSDecimalNumber *)balance; - (id)initWithName:(NSString *)name balance:(NSDecimalNumber *)balance NS_DESIGNATED_INITIALIZER; @end @implementation BankAccount - (id)initWithName:(NSString *)name { if ((self = [super init])) { self.name = name; } return self; } - (id)initWithName:(NSString *)name balance:(NSDecimalNumber *)balance { if ((self = [self initWithName:name])) { self.balance = balance; } return self; } - (id)initWithBalance:(NSDecimalNumber *)balance { return [self initWithName:NSLocalizedString(@"Anonymous", nil) balance:balance]; } @end int main(int argc, char *argv[]) { @autoreleasepool { } }