NSMutableArray дает ноль при использовании addObject - PullRequest
0 голосов
/ 28 июля 2011

Я пытаюсь добавить значения в массив yArray. Однако в NSLog он всегда отображается как ноль. Я синтезирую NSMutableArray (yArray) и не получаю ошибок или предупреждений при компиляции. Я считаю, что одной из причин может быть то, что я не инициализирую массив. Я где-то читал, что @synthesize не инициализируется. Тем не менее, я новичок, и я не уверен, как правильно инициализировать массив. Я исследовал это на Google, но не мог понять это. Может кто-нибудь сказать мне, как или, по крайней мере, указать мне в правильном направлении. Я разместил часть своего кода ниже. Заранее спасибо.

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 ]

1 голос
/ 28 июля 2011

Чтобы правильно инициализировать массив, используйте

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

Инициализируйте его перед использованием (возможно, в методе init или чем-то в этом роде), затем повторите попытку.Не забудьте вручную отпустить его, когда закончите.

0 голосов
/ 28 июля 2011

Просто инициализируйте его сначала в месте, где будет введен код до вашего addObject.например,

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