Я получаю данные из своей базы данных, и данные извлекаются с использованием цикла while.Согласование значений с одним ключом в NSMutableDictionary
success = [db executeQuery:@"SELECT * FROM apidataTwo;"];
while([success next]){
int first = [success intForColumn:@"id"];
NSString *id = [NSString stringWithFormat:@"%d",first];
[_tempArray addObject:id];
NSString *country_name = [success stringForColumn:@"country_name"];
[_tempArray addObject:country_name];
NSString *breezometer_description = [success stringForColumn:@"breezometer_description"];
[_tempArray addObject:breezometer_description];
NSString *country_description = [success stringForColumn:@"country_description"];
[_tempArray addObject:country_description];
NSString *dateString= [success stringForColumn:@"dateString"];
[_dateSectionArray addObject:dateString];
[_dataDictionary setObject:_tempArray forKey:dateString];
}
Предположим, что мы получим тот же ключ в разных итерациях цикла. Когда я передаю массив на NSMutableDictionary
, предыдущие значения будут заменены и потеряны.
И если я продолжаю обновлять NSMutableArray
, то значения предыдущего ключа также будут добавлены к другому ключу.
Так что в ситуациях, подобных этому, когда мы хотим объединить значения в один и тот же ключ, тогда какой должен быть наш подход.
Словарь должен выглядеть следующим образом:
{
2016-10-05" = (
5,
"United States",
"Fair Air Quality",
"Good air quality"
);
"2016-10-06" = (
5,
"United States",
"Fair Air Quality",
"Good air quality"
);
}
'если (_dataDictionary [DateString]) {[(NSMutableArray *) _ DataDictionary [DateString] addObjects: theNotIncremetingArray]} еще {[_ DataDictionary SetObject: theNotIncremetingArray forKey: DateString];}' ? – Larme
@ Larme Массив, который я вам сказал, должен быть не изменяемым? – arqam
Если вы хотите «addObjects:» к нему, он должен быть изменен. Я опубликовал, что я мог понять, это ваш вопрос, потому что это неясно с «keep incrementing array». – Larme