master
 1#import "Brain.h"
 2
 3@interface Brain()
 4@property (strong, nonatomic) NSMutableArray * arrOperands;
 5@end
 6
 7@implementation Brain
 8-(void) addObject:(double)operand
 9{
10  if (!self.arrOperands)
11  {
12    self.arrOperands = [[NSMutableArray alloc] init];
13  }
14
15  [self.arrOperands addObject:[NSNumber numberWithDouble:operand]];
16}
17
18-(double) performOperation:(NSString *)operation
19{
20  double result = 0;
21
22  if (self.arrOperands.count > 1)
23  {
24    if([operation isEqualToString:@"+"])
25    {
26      result = [self removeLastObject] + [self removeLastObject];
27    }
28
29    if ([operation isEqualToString:@"-"])
30    {
31      result = -[self removeLastObject] + [self removeLastObject];
32    }
33
34    if ([operation isEqualToString:@"x"])
35    {
36      result = [self removeLastObject] * [self removeLastObject];
37    }
38
39    if ([operation isEqualToString:@"/"] && [[self.arrOperands lastObject] doubleValue] != 0)
40    {
41      double tempDivisor = [self removeLastObject];
42      result = [self removeLastObject] / tempDivisor;
43    }
44  }
45
46    [self addObject:result];
47    return result;
48}
49
50-(double) removeLastObject
51{
52  NSNumber * lastObject = [self.arrOperands lastObject];
53  if (self.arrOperands)
54  {
55    [self.arrOperands removeLastObject];
56  }
57  return [lastObject doubleValue];
58}
59
60-(void) clear
61{
62  [self.arrOperands removeAllObjects];
63}
64@end