NSMutableArray addObject error - PullRequest
       4

NSMutableArray addObject error

2 голосов
/ 28 декабря 2010

Я не могу добавить объект в 'easyQArray' (NSMutableArray).Это сработало, когда я определил массив локально, но когда я переместил объявление в файл .h, он больше не работает.

Сбой приложения ofc, когда я пытаюсь получить доступ к индексу в массиве, который несуществовать:

// Create question arrays
if (easyPlayers > 0) {
    for (int XX = 0; XX < easyQuestions; XX++) {
        [easyQArray addObject: [myArray objectAtIndex: easyQStartPos]];
        NSLog(@"myArray: %@", [myArray objectAtIndex: easyQStartPos]);
        NSLog(@"easyQArray: %@", easyQArray);
        easyQStartPos = easyQStartPos + 1;
    }
}

Вывод:

2010-12-28 15: 52: 57.636 XX_v2 [11582: 207] myArray: 205
2010-12-28 15: 52: 57.636 XX_v2 [11582: 207] easyQArray: (ноль)
2010-12-28 15: 52: 57.636 XX_v2 [11582: 207] myArray: 71
2010-12-28 15: 52: 57.637XX_v2 [11582: 207] easyQArray: (ноль)
2010-12-28 15: 52: 57.637 XX_v2 [11582: 207] myArray: 94
2010-12-28 15: 52: 57.638 XX_v2 [11582:207] easyQArray: (ноль)
2010-12-28 15: 52: 57.638 XX_v2 [11582: 207] myArray: 133
2010-12-28 15: 52: 57.638 XX_v2 [11582: 207] easyQArray:(null)
2010-12-28 15: 52: 57.639 XX_v2 [11582: 207] myArray: 142
2010-12-28 15: 52: 57.640 XX_v2 [11582: 207] easyQArray: (null)

Ответы [ 3 ]

12 голосов
/ 28 декабря 2010

Кажется, что вы даже не инициировали свой массив.Из вашего описания это звучит так, как если бы вы объявили его как свойство, поэтому вызов alloc / init в вашем методе класса init должен решить вашу проблему.

0 голосов
/ 28 декабря 2010

Должно работать, даже если вы переместили его .h.
Убедитесь, что вы инициализируете свой easyQArray. И убедитесь, что вы инициализировали его как NSMutableArray.
Инициализация должна произойти до того, как вы выполните addObject in [easyQArray addObject: [myArray objectAtIndex: easyQStartPos]];

0 голосов
/ 28 декабря 2010

easyQArray определен, но где он расположен? (я думаю, что это не так, как ваш журнал показывает, что это ноль)

Вероятная пропущенная строка:

easyQArray = [[NSMutableArray alloc] init];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...