2010-02-09 4 views
0

У меня есть синтаксис ниже для установки объекта.Как получить массив NSmutable из NSMutableDictionary?

[dict setObject:eventArray forKey:categoryName]; 

Теперь я пытаюсь получить синтаксис ниже, но я ничего не получил.

NSMutableArray *tempArrayValue=[[NSMutableArray alloc]init]; 
tempArrayValue =[tempDict valueForKey:categoryValue]; 

В чем проблема, которую я не могу понять, может помочь мне?

+0

Вы используете 'dict' для установки eventArray и tempDict для его получения. Если это не проблема, показать нам весь код –

+0

[[NSMutableArray alloc] init] действительно необходимо здесь? – willcodejavaforfood

ответ

0

Вы указали ключ как categoryName not categoryValue, и при извлечении вы используете categoryValue.

NSMutableArray *tempArrayValue=[[NSMutableArray alloc]init]; tempArrayValue =[tempDict valueForKey:categoryName]; 
+0

в CategoryName и Categoryvalue содержат одинаковые данные –

+0

являются dict и tempDict имеют одинаковое значение? –

0

Если вы устанавливаете значение, как это:

[dict setObject:eventArray forKey:categoryName]; 

Тогда вы должны быть извлечение его обратно, как это:

NSMutableArray* eventArray = [dict valueForKey:categoryName]; 

при условии, что eventArray имеет тип NSMutableArray.

У вас есть как минимум две разные проблемы.

Эта линия является утечка памяти, так как вы выделяете объект, а затем выбросить его, так что удалите его:

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

Эта вторая линия может возвращать ноль объект, если нет объекта сохраняется для ключевая категория. (Вы используете объект, называемый CategoryName выше, в качестве ключа для хранения значения):

tempArrayValue =[tempDict valueForKey:categoryValue]; 

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

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