2011-07-28 90 views
0

我试图给yArray添加值。但是在NSLog中,它总是显示为空。我正在合成NSMutableArray(yArray),并且在编译时不会出现错误或警告。我相信一个原因可能是我没有初始化数组。我读了@synthesize不初始化的地方。然而,我是一个初学者,我不知道如何正确初始化数组。我在谷歌上研究过它,但无法弄清楚。有人能告诉我如何或至少指出我在正确的方向吗?我在下面发布了我的部分代码。先谢谢你。当使用addObject时,NSMutableArray为null

for (int i = 0; i < n; ++i) 
{ 
    xx = xx + [[self.yArr1 objectAtIndex:i] doubleValue]; 
} 

for (int i = 0; i < n; ++i) 
{ 
    if(i==0) 
     [self.yArray addObject:[NSNumber numberWithDouble:(0.0)]]; 
    else 
    { 
     bb = fabs([[self.yArr1 objectAtIndex:i] doubleValue]- [[self.yArr1 objectAtIndex:(i-1)] doubleValue]); 
     [self.yArray addObject:[NSNumber numberWithDouble:(bb)]]; // This is the problem. 
     yy = yy + [[self.yArray objectAtIndex:i] doubleValue]; 
    } 
    NSLog(@"prediction %f, %f, %@, %f", bb, yy, [self.yArray objectAtIndex:i],[[self.yArr1 objectAtIndex:i] doubleValue]); 
} 
NSLog(@"prediction %f, %f", bb, yy); 

回答

1

为了正确地初始化数组使用

NSMutableArray* yArray = [[NSMutableArray alloc] init]; 

使用它(也许在init方法或类似的东西)之前,初始化它,然后重试。不要忘记在完成后手动释放它。

+0

非常感谢。我觉得很愚蠢,似乎我需要有人指出,声明 self.yArray = [[NSMutableArray alloc] init]; 表示初始化数组。 – John

0

只需在您的addObject代码之前将要命中的位置初始化它。例如

yArray = [[NSMutableArray alloc] init]; 
+0

非常感谢您的回复。这真的为我节省了很多时间。因为,我对初始化这个术语一无所知。不知道这是否意味着初始化。 – John

相关问题