2015-02-09 2 views
-1

У меня есть метод, который добавляет строку в Mutable array. Однако каждый раз, когда я вызываю этот метод, он перезаписывает последний введенный элемент.Array продолжает быть написанным

Ниже мой код: brain.h

@property (nonatomic,strong) NSMutableArray *equation; 

brain.m

@synthesize equation = _equation; 
-(double)performCalculation:(NSString *)operation 
{ 

double left ; 
double right; 

left = [self setOperand]; 
right = [self setOperand]; 

result = left + right; 

NSString *leftString = [NSString stringWithFormat:@"%f + %f = %f", left, right,result]; 

_equation = [NSMutableArray arrayWithCapacity:25]; 
[self.equation addObject: leftString]; 


//Checking entries 
     for(NSString * myStr in _equation) { 
      NSLog(myStr); 
     } 

}

+1

'_equation = [NSMutableArray arrayWithCapacity: 25];' повторно инициализирует массив. Вот почему результаты переписываются. – mattt

+0

Где я должен переместить эту строку так, чтобы она не перезаписывалась? – John

+0

В ваш инициализатор, '- (instancetype) init:' или тому подобное. – mattt

ответ

0

Удалить

_equation = [NSMutableArray arrayWithCapacity:25]; 

линии от вашей функции. И установите его в свой инициализатор. Также будет полезно не использовать жестко закодированные номера (25).

+0

Немного смущен. Какой конструктор я могу разместить? Im довольно новичок в Objective-C и все еще пытаюсь изучить основы haha ​​ – John

+0

Как вы создаете объект мозга? Добавьте следующие данные в свой .m-файл: - (id) init { self = [super init]; if (self! = Nil) { уравнение = [NSMutableArray arrayWithCapacity: 25] } return self; } –

Смежные вопросы