NSMutableDictionary не получает ожидаемый вывод. - PullRequest
0 голосов
/ 07 декабря 2011

Выводится только один набор для NSMutableDictionary, но не оба.Я хочу создать запрос JSON с помощью NSMutableDictionary (JSONRepresentation).

// My code    

NSArray *keysEndpoint = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil];
NSArray *objectEndpoint = [NSArray arrayWithObjects:@"622", @"Brand", @"0", nil];

NSArray *keysEndpoint1 = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil];
NSArray *objectEndpoint1 = [NSArray arrayWithObjects:@"595", @"CK-05052011", @"1", nil];

NSMutableArray *keys1 = [[NSMutableArray alloc] initWithCapacity:0];
NSMutableArray *objects1 =  [[NSMutableArray alloc] initWithCapacity:0];

[keys1 addObjectsFromArray:keysEndpoint];
[keys1 addObjectsFromArray:keysEndpoint1];

NSLog(@"Key Dic: %@", keys1);

[objects1 addObjectsFromArray:objectEndpoint];
[objects1 addObjectsFromArray:objectEndpoint1];

NSLog(@"Obje Dic: %@", objects1);

NSMutableDictionary *testMut = [NSMutableDictionary dictionaryWithObjects:objects1  forKeys:keys1];

NSLog(@"Test Dic: %@", testMut);

Вывод получаю:

 Test Dic: {
    EndpointType = 1;
    ID = 595;
    Name = "CK-05052011";
}

Ожидаемый вывод, который я хочу:

Test Dic: {
    EndpointType = 1;
    ID = 595;
    Name = "CK-05052011";
} 
{
    EndpointType = 0;
    ID = 622;
    Name = "Brand";
}

1 Ответ

1 голос
/ 07 декабря 2011

Для словаря, добавление одних и тех же ключей дважды переопределит первый набор ключей.Вы должны иметь NSMutableArray NSMutableDictionary

NSArray *keysEndpoint = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil];
NSArray *objectEndpoint = [NSArray arrayWithObjects:@"622", @"Brand", @"0", nil];

NSArray *keysEndpoint1 = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil];
NSArray *objectEndpoint1 = [NSArray arrayWithObjects:@"595", @"CK-05052011", @"1", nil];

NSMutableDictionary *testMut = [NSMutableDictionary dictionaryWithObjects:objectsEndpoint  forKeys:keysEndpoint];


NSMutableDictionary *testMut1 = [NSMutableDictionary dictionaryWithObjects:objectsEndpoint1  forKeys:keysEndpoint1];

NSMutableArray * dictArray = [NSMutableArray arrayWithObjects:testMut,testMut1,nil];

NSLog(@"Test DictArray: %@", dictArray);
...