使用addObject时,NSMutableArray给出null

时间:2011-07-28 15:08:16

标签: objective-c initialization nsmutablearray nsarray

我正在尝试为yArray添加值。但是在NSLog中,它总是显示为null。我正在合成NSMutableArray(yArray)并且在编译时没有得到任何错误或警告。我相信一个原因可能是我没有初始化阵列。我在某处读到@synthesize没有初始化。但是,我是初学者,我不知道如何正确初始化阵列。我在谷歌上研究了它,但无法弄明白。有人能告诉我如何或至少指出我正确的方向。我在下面发布了我的部分代码。提前谢谢。

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);

2 个答案:

答案 0 :(得分:1)

要正确初始化数组,请使用

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

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

答案 1 :(得分:0)

首先在您的addObject代码之前的某个位置初始化它。 e.g。

yArray = [[NSMutableArray alloc] init];