Объединение объектов (NSDictionary) NSArray, имеющего общие данные - PullRequest
1 голос
/ 28 июля 2011

Ниже приведена структура моей базы данных:

(
  {
      NSDate
      Name
  },
  {
      NSDate
      Name
  }

);

Хотите преобразовать вышеуказанный NSArray в следующую структуру:

   (
      {
          Date
          Time
               (

               )
          Name 
               (

               )              
      },
      {
          Date
          Time
               (

               )
          Name 
               (

               )
      }

    );

Пример:

Изначально отсортированный массив

Date             Name

1-7-2011 10.00   A1
2-7-2011 2.00    A2
2-7-2011 2.00    A3
2-7-2011 3.00    A4

Вывод:

Date        Time       Name
1-7-2011    10.00       A1

                        A2
            2.00        A3
2-7-2011                
            3.00        A4

В сортировке хотите объединить события , имеющие такие же общие факторы & добавить только общий множитель один раз . Так можно ли реализовать вышеуказанную вещь с использованием предопределенных функций платформы iOS ?Спасибо заранее.

1 Ответ

1 голос
/ 28 июля 2011

Это должно сделать это

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];

for (NSDictionary *item in yourArray) {
    NSDate *date = [item objectForKey:@"date"];

    [dateFormater setDateFormat:@"yyyy-MM-dd"];
    NSString *dateString = [dateFormater stringFromDate:date];

    [dateFormater setDateFormat:@"hh:mm"];
    NSString *timeString = [dateFormater stringFromDate:date];

    if ([dictionary objectForKey:dateString]) {
        if ([dictionary objectForKey:timeString]) {
            [[[dictionary objectForKey:dateString] objectForKey:timeString] setObject:[item objectForKey:@"name"] forKey:@"name"];
        }
        else {
            NSMutableDictionary *timeDictionary = [NSMutableDictionary dictionaryWithObject:[item objectForKey:@"nam"] forKey:@"name"];
            [[dictionary objectForKey:dateString] setObject:timeDictionary forKey:timeString];
        }
    }
    else {
        NSMutableDictionary *timeDicationary = [NSMutableDictionary dictionaryWithObject:[item objectForKey:@"name"] forKey:@"name"];
        NSMutableDictionary *dateDictionary = [NSMutableDictionary dictionaryWithObject:timeDictionary forKey:timeString];
        [dictionary setObject:dateDictionary forKey:dateString];
    }
}

[dateFormater release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...