Инициализация NSArray и добавление к нему NSInteger - PullRequest
1 голос
/ 06 июля 2010

У меня проблемы с инициализацией NSArray и добавлением к нему целых чисел.Вот мой код, который я прокомментировал в том, что я пытаюсь выполнить.Мое приложение аварийно завершает работу при добавлении объекта, но я не знаю, правильно ли я очищаю массив.

//CREATE AND INITIALIZE AN ARRAY
NSArray *ticket;                                                        
ticket = [[NSArray alloc] init];

//slotA,slotB,slotC are of type NSInteger that I am trying to add
//to the array (THIS CRASHES)

[ticket addObject:[NSNumber numberWithInt:slotA]];
[ticket addObject:[NSNumber numberWithInt:slotB]];
[ticket addObject:[NSNumber numberWithInt:slotC]];

//I never got to this line of code but I think it has to be wrong
//because this would throw the whole //array away. I dont want it
//to be thrown away I just wanna clear it out but keep it instanciated.

[ticket release];

Я пытался это сделать, но он говорит, что "мне не хватает вызова функции"

NSArray *ticket;
NSString *sltA=[NSString stringWithFormat:@"%d", slotA];
NSString *sltB=[NSString stringWithFormat:@"%d", slotB];
NSString *sltC=[NSString stringWithFormat:@"%d", slotC];
ticket = [[NSArray alloc] initWithObjects:sltA,sltB,sltC];

Кроме того, мне нужно изменить целые числа в строку, чтобы поместить их в массив?

Ответы [ 2 ]

4 голосов
/ 06 июля 2010

Измените NSArray на NSMutableArray.Это позволит вам добавлять и удалять объекты.

NSArray - это массив, который не предполагается изменять после его создания.

NSMutableArray является просто подклассом NSArray и имеет много функций, которые помогут вам добавлять и удалять объекты в любой точке массива.

0 голосов
/ 06 июля 2010

Код выглядит правильным (технически вы должны использовать +numberWithInteger: вместо +numberWithInt:, но это, конечно, не приведет к сбою.) Что вы видите при сбое?Можете ли вы опубликовать вывод из GDB / Xcode?

...