ли вы установить объект и ключ правильно? Также Правильно ли вы использовали NSDictionary и NSMutableDictionary?
Сначала я проверил ваш ниже код.
NSMutableArray *testArray=[NSMutableArray arrayWithObjects:@"Jan Month",@"Feb Month",@"Mar Month",@"Apr Month",@"May Month",@"June Month",@"July Month",@"Aug Month",@"Sep Month",@"Oct Month", nil];
NSMutableArray *testResult=[NSMutableArray arrayWithObjects:@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass", nil];
NSDictionary *testDetails=[NSDictionary dictionaryWithObjects:testArray forKeys:testResult];
[testDetails setValue:@"Fail" forKey:@"Feb Month"];
Теперь посмотрим result.There только одна пара ключей значение
Что ваша ошибка здесь вы неправильно установить ключ и объект, а также вам нужно установить значение NSMutableDictionary.
Если вы хотите отредактировать значения в словаре, вы должны использовать NSMutableDictionary, поскольку он изменен. Используя NSDictionary, вы не можете редактировать его, потому что он неизменен. Вы ничего не можете изменить.
NSMutableArray *testArray=[NSMutableArray arrayWithObjects:@"Jan Month",@"Feb Month",@"Mar Month",@"Apr Month",@"May Month",@"June Month",@"July Month",@"Aug Month",@"Sep Month",@"Oct Month", nil];
NSMutableArray *testResult=[NSMutableArray arrayWithObjects:@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass",@"Pass", nil];
NSMutableDictionary *testDetails=[NSMutableDictionary dictionaryWithObjects:testResult forKeys:testArray];
[testDetails setValue:@"Fail" forKey:@"Feb Month"];
Теперь увидеть результат печати
Printing description of testDetails:
{
"Apr Month" = Pass;
"Aug Month" = Pass;
"Feb Month" = Fail;
"Jan Month" = Pass;
"July Month" = Pass;
"June Month" = Pass;
"Mar Month" = Pass;
"May Month" = Pass;
"Oct Month" = Pass;
"Sep Month" = Pass;
}
Также смотрите скриншот ниже
Вы должны знать, чтобы использовать словарь первым.
Apple NSDictionary API reference says
Класс NSDictionary объявляет программный интерфейс к объектам , которые управляют неизменные ассоциации ключей и значений. Используйте этот класс или его подкласс NSMutableDictionary, когда вам нужен удобный и эффективный способ получения данных, связанных с произвольным ключом. NSDictionary создает статические словари, а NSMutableDictionary создает динамические словари. (Для удобства термина словарь относится к любому экземпляру одного из этих классов без указания своего членства точного класса.)
Apple NSMutableDictionary API reference says
Класс NSMutableDictionary объявляет программный интерфейс к объектам , которые управляют изменяемыми ассоциации ключей и ценностей. Он добавляет операции модификации к основным операциям, которые он наследует от NSDictionary.
NSDictionary vs NSMutableDictionary
попробовать еще раз, используя "везде, вместо того, чтобы« – Russell
Не используйте 'valueForKey/SetValue: forKey', если вы не можете объяснить, почему вы явно нужны KVC Выделенные методы' objectForKey/SetObject.: forKey' или - предпочтительнее - ключевые подписи. – vadian
Вы получили ключи/значения в обратном порядке. Вероятно, вы имели в виду '[NSDictionary dictionaryWithObjects: testResult forKeys: testArray];' (Первые значения _then_ keys) ... И, конечно, вы будете нужен изменяемый dict, как сказал @Nirav ... – Alladinian