Если вы устанавливаете значение следующим образом:
[dict setObject:eventArray forKey:categoryName];
Тогда вы должны вернуть его снова, как это:
NSMutableArray* eventArray = [dict valueForKey:categoryName];
при условии, что eventArray имеет тип NSMutableArray
.
То, что вы делаете, имеет как минимум две разные проблемы.
Эта строка является утечкой памяти, поскольку вы выделяете объект, а затем выбрасываете его, поэтому удалите его:
NSMutableArray *tempArrayValue=[[NSMutableArray alloc]init];
Эта вторая строка может возвращать нулевой объект, если для ключа categoryValue нет сохраненного объекта. (Вы используете объект под названием categoryName выше, в качестве ключа для хранения значения):
tempArrayValue =[tempDict valueForKey:categoryValue];
Вы недостаточно опубликовали код, чтобы понять, почему он не работает.