Releasing retained objects inside dealloc
- (void)dealloc{
    if(account_)


You don't need to do this. Objective-C ignores attempts to call methods on nil objects. So you call release and nothing will happen if its already nil

        [account_ release];
    account_ = nil;


Your object is being destroyed, there isn't a whole lot of point in setting values to nil

    [super dealloc];
}