2010-09-28 2 views
4

Мне нужно добавить два NSMUtableArray's, может ли кто-нибудь предложить мне, как это возможно?Как добавить два NSMutableArray в Iphone sdk или добавить NSArray с NSMutableArray?

Мой код: помощь

NSMutableArray *array1 = [appDelegate getTextList:1]; 
NSArray *array2 = [appDelegate getTextList:2]; 
[array1 addObjectsFromArray:array2];//I am getting exception here. 

Anyone будет высоко ценится.

Спасибо, Lakshmi.

+0

Какое исключение вы получаете? – willcodejavaforfood

+0

Это исключение, которое я получаю: –

+0

2010-09-28 14: 18: 10.685 VoiceMessenger [3147: 307] *** Завершение приложения из-за неперехваченного исключения «NSGenericException», причина: *** Коллекция <__ NSArrayM: 0x166090 > мутировали в то же время перечислены ( ""., "", "", "", « " "", "", "", "", "", " " ) ' –

ответ

13

Что, вероятно, происходит, это то, что ваш [appDelegate getTestList: 1] фактически не возвращает NSMutableArray, а NSArray. Просто типажей массив как изменяемые, удерживая указатель на него, как это не будет работать в этом случае, вместо того, чтобы использовать:

NSMutableArray *array1 = [[appDelegate getTextList:1] mutableCopy]; 
NSArray *array2 = [appDelegate getTextList:2]; 
[array1 addObjectsFromArray:array2]; 

Или вы могли бы хранить переменную «Textlist», что у вас есть в вашем AppDelegate как NSMutableArray в первое место. Я предполагаю, что у вас есть NSArrayNSArrays (или их изменяемые версии). Например.

// In the class interface 
NSMutableArray *textLists; 

// In the function in which you add lists to the array 
NSMutableArray *newTextList; 
[self populateArray:newTextList]; // Or something like that 

[textLists addObject:newTextList]; 

Примечание:, что вы, вероятно, другой рабочий процесс, но я надеюсь, что вы получите представление о том, хранения фактических списков, NSMutableArrays.

Другой Примечание: второй метод ВОЛЯ изменить на место NSMutableArray что [appDelegate getTextList:1]; возвращает

+0

На самом деле я получаю список из Xmlparser, и я помещаю его в NSMutableArray, например: NSMutableArray * array1 = [appDelegate getTextList: 1]; –

+0

На самом деле Моя проблема В первый раз я получу 10 элементов из анализатора, и я храню его в NSMutableArray * textArrayList; Я буду использовать этот массив через контроллер. Когда я нажимаю на загрузку больше кнопок resuts, я отправляю параметр pagenumber и снова получаю еще десять дополнительных элементов. Я хочу, чтобы следующие десять элементов добавлялись к текстуArrayList.And отображали все 20 элементов , –

1

Попробуйте это:

NSMutableArray *result = 
    [[appDelegate getTextList:1] mutableCopy] 
     addObjectsFromArray:[appDelegate getTextList:2]]; 

Вы получаете исключение, потому что вы пытаетесь отправлять мутирующие сообщения в неизменяемый массив.

Смежные вопросы