2013-05-17 3 views
0

Я объявил NSDictionary *dict; во всем мире и пытается добавить этот dictionary в array, но получаю сообщение об ошибке:NSInvalidArgumentException при добавлении NSDictionary к NSArray

, истекающий приложение из-за неперехваченного исключением «NSInvalidArgumentException», причина: "* - [__NSArrayM insertObject: atIndex]: объект не может быть нулевым»

Мой код:

dict = @{@"Testcase" : Testcase, @"TestResult" : TestResult,@"Message": Message}; 
NSMutableArray * myArray = [[NSMutableArray alloc] init]; 
[myArray insertObject:dict atIndex:TestcaseId]; 

Как решить эту ошибку?

+1

Что такое 'TestcaseId' ..? –

+1

TestcaseId должен быть меньше, чем ваш массив count ... – Yashesh

+0

попробуйте это [myArray addObject: dict]; – yen

ответ

4

, истекающим приложение из-за неперехваченное исключением 'NSInvalidArgumentException', причина: «* - [__ NSArrayM insertObject: atIndex]: объект не может быть nil '

Задача: Из вышеперечисленного ErrorMessage, ясно, что вы пытаетесь добавить значение NULL в свой NSDictionary.

Объяснение: Во время вставки Значение к вашему NSDictionary, обратите внимание, что Значение не должно быть NULL и нестроковой. Вы пытаетесь добавить Значение переменной на ваш Словарь напрямую. Вместо этого вы должны попытаться добавить так:

Ответ:

[NSString stringWithFormat:@"%@",Testcase]; 

Преимущества:

  1. Это добавит строковое значение.
  2. Он добавит Пустое значение, когда ваше значение переменной NULL.
0
[myArray addobject:dict]; 


or 

[myArray replaceObjectAtIndex:TestcaseId withObject:dict] 
1
dict = [NSDictionary dictionaryWithObjectsAndKeys:Testcase:@"Testcase", TestResult: @"TestResult",Message, @"Message", nil]; 
NSMutableArray * myArray = [[NSMutableArray alloc] init]; 
[myArray insertObject:dict atIndex:TestcaseId]; 

Убедитесь TestcaseId не больше, чем ваш array count

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