Вот мой код для возврата уникального значения для идентичных ключей в словаре. Прямо сейчас в моем журнале мой «массив объектов:» равен 6 (3 набора (2 объекта с одинаковыми ключами)), а мой «словарь:» возвращает значения для 1 объекта из каждого набора (3 уникальных значения). В моем заявлении "за":
for (id key in dict)
{
self.titlesArray = [NSMutableArray arrayWithObject:dict];
NSLog(@"titles: %@", self.titlesArray);
self.titlesArray = [[NSMutableArray alloc] initWithObjects:[dict valueForKey:key] ,nil];
NSLog(@"titles: %@", self.titlesArray);
}
В первом журнале печатаются три уникальных значения и ключи. Второй выводит только одно значение для одного ключа (это то, что я хочу .. но мне нужны все три ключевых значения) Итак, моя проблема теперь в том, что я не могу вытащить ключ для каждого уникального значения из словаря и добавить его к моим заголовкамArray.
for (id key in dict)
{
self.titlesArray = [NSMutableArray arrayWithObject:dict];
self.titlesArray = [[NSMutableArray alloc] initWithObjects:[dict valueForKey:key] ,nil];
код не совсем правильный.
PFQuery *query = [PFQuery queryWithClassName:@"Images"];
[query whereKey:@"recipientIds" equalTo:[[PFUser currentUser] objectId]];
[query orderByDescending:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error) {
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
else {
// found messages!
self.objectsArray = objects;
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
for(id obj in self.objectsArray){
PFObject *key = [obj valueForKey:@"titleLabel"];
if(![dict objectForKey:key]){
[dict setValue:key forKey:[obj valueForKey:@"titleLabel"]];
}
}
for (id key in dict) {
self.titlesArray = [NSMutableArray arrayWithObject:dict];
NSLog(@"titles: %@", self.titlesArray);
self.titlesArray = [[NSMutableArray alloc] initWithObjects:[dict valueForKey:key] ,nil];
NSLog(@"titles: %@", self.titlesArray);
}
NSLog(@"dictionary: %@", dict);
NSLog(@"Objects array is %d", [self.objectsArray count]);
[self.pickerView reloadComponent:0];