2015-02-09 56 views
-1

我有一個方法,它將一個字符串添加到Mutable數組中。但每次我調用該方法時,它都會覆蓋最後輸入的元素。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 2015-02-09 13:23:51

+0

我應該在哪裏移動該行以便它不覆蓋? – John 2015-02-09 13:25:34

+0

在你的初始化程序中,' - (instancetype)init:'等等。 – mattt 2015-02-09 13:26:03

回答

0

從你的函數刪除

_equation = [NSMutableArray arrayWithCapacity:25]; 

線。並將其設置在您的初始化程序中。也不要使用硬編碼的數字(25)。

+0

林有點困惑。我將它放入哪個構造函數?我相當新的Objective-C,我仍然試圖學習基礎知識haha – John 2015-02-09 13:47:21

+0

你如何創建大腦對象?在.m文件中添加以下內容: - (id)init {self = [super init]; if(self!= nil){= {NSMutableArray arrayWithCapacity:25] } return self; } – 2015-02-09 13:54:56