2016-08-08 3 views
-1

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

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; 
    [dict setObject:comment.text forKey:@"Comment"]; 
    [dict setObject:name.text forKey:@"Name"]; 
    [dict setObject:[NSString stringWithFormat:@"%d",isPublic] forKey:@"VisibleForAll"]; 
po dict 
{ 
    Comment = "no comment"; 
    Name = "test"; 
    VisibleForAll = 1; 
    -> carts 
} 

Кроме того, я хочу добавить следующее дерево в словарь, но не могу понять, как это сделать.

У меня есть необходимые элементы в 2 NSArrayartID и qty, но я не знаю, как создать нижнюю часть, так что я могу добавить его в dict.

Carts { 
     Cart { 
      ArticleID : 22 
      Quantity : 1 
      } 
     Cart { 
      ArticleID : 45 
      Quantity : 3 
      } 
     ... 
     } 

Я добавлю его [dict setObject:carts forKey:@"Cart"], но я не знаю, как добавить значения таким образом, что я буду делать свою dictionary на форме я представил вам.

Кроме того, не забывайте, что цифры или Carts являются гибкими. Я получу его от Product.count.

Заранее спасибо.

ответ

2

Если как массив artID и qty имеют значение в тот же индекс для создания словаря, вы можете попробовать, как этот

NSMutableArray *carts = [[NSMutableArray alloc] init]; 
for(NSInteger i=0; i<products.count; i++) { 
    //If you have custom class `cart` than use that 
    Cart *cart = [[Cart alloc] init]; 
    cart.ArticleID = [[products objectAtIndex:i] valueForKey:@"pid"]; 
    cart.Quantity = [[products objectAtIndex:i] valueForKey:@"qty"]; 

    //If you not have any custom class than use Dictionary 
    NSMutableDictionary *cart = [[NSMutableDictionary alloc] init]; 
    [cart setObject:[[products objectAtIndex:i] valueForKey:@"pid"] forKey:@"ArticleID"]; 
    [cart setObject:[[products objectAtIndex:i] valueForKey:@"pid"] forKey:@"Quantity"]; 
} 

Теперь добавьте этот carts массив Dictionary с ключом

[dict setObject:carts forKey:@"carts"]; 
+0

Ваш ответ был частично правильным, но это помогло мне достичь решения. –

0
NSArray *pid = [products valueForKey:@"pid" ]; 
    NSArray *qty = [products valueForKey:@"qty"]; 

    NSMutableArray *carts = [[NSMutableArray alloc] initWithCapacity:products.count]; 



    for(NSInteger i=0; i<products.count; i++) { 
     NSMutableDictionary *cart = [[NSMutableDictionary alloc] init]; 
     NSMutableDictionary *cartemp = [[NSMutableDictionary alloc] init]; 

     [cart setObject:[pid objectAtIndex:i] forKey:@"ArticleId"]; 
     [cart setObject:[qty objectAtIndex:i] forKey:@"Quantity"]; 
     [cartemp setObject:cart forKey:@"Cart"]; 
     [carts addObject:cartemp]; 
    } 

    [dict setObject:carts forKey: @"Carts"]; 
Смежные вопросы