关于Objective-c 对象 getter 初始化
昨天写了一个计算器出现一个bug,导致对象为null并且调试也无法找出错误
最后终于发现原来是getter的函数名写错了
所以导致初始化失败。
// // CalculatorViewController.m // Calculator // // Created by linqianqiu on 12-7-19. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import "CalculatorViewController.h" #import "CalculatorBrain.h" @interface CalculatorViewController() @property (nonatomic) BOOL userIsInTheMiddleOfEnteringANumber; @property (nonatomic, strong) CalculatorBrain *brain; @end @implementation CalculatorViewController @synthesize display = _display; @synthesize userIsInTheMiddleOfEnteringANumber = _userIsInTheMiddleOfEnteringANumber; @synthesize brain = _brain; - (CalculatorBrain *)barin { if (!_brain) { _brain = [[CalculatorBrain alloc] init]; } return _brain; } - (IBAction)digitPressed:(UIButton *)sender { NSString* digit = sender.currentTitle; if (self.userIsInTheMiddleOfEnteringANumber) { self.display.text = [self.display.text stringByAppendingFormat:digit]; } else { self.display.text = digit; self.userIsInTheMiddleOfEnteringANumber = YES; } } - (IBAction)operationPressed:(UIButton *)sender { if (self.userIsInTheMiddleOfEnteringANumber) [self enterPressed]; double result = [self.brain performOperation:sender.currentTitle]; NSString* resultString = [NSString stringWithFormat:@"%g", result]; self.display.text = resultString; } - (IBAction)enterPressed { [self.brain pushOperand:[self.display.text doubleValue]]; self.userIsInTheMiddleOfEnteringANumber = NO; } - (IBAction)clearPressed { self.display.text = @"0"; } @end