2016-08-08 19 views
-1

Ich lief auf ein Problem und ich kann die Methode nicht finden, um darüber hinwegzukommen. Im Grunde muss ich ein veränderbares Wörterbuch mit einigen Werten erstellen. Alle Werte sind dynamisch und ich erhalte sie vom Webservice oder von anderen Variablen.Array-Werte zu NSMutableDictionary hinzufügen

Außerdem möchte ich den folgenden Baum zu meinem Wörterbuch hinzufügen, aber ich kann mir nicht vorstellen, wie dies zu tun ist.

Ich habe die erforderlichen Elemente in 2 NSArrayartID und qty aber ich weiß nicht, wie Sie den unteren Teil zu schaffen, damit ich es die dict hinzufügen kann.

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

Ich werde es mit [dict setObject:carts forKey:@"Cart"] hinzufügen, aber ich weiß nicht, wie Werte in einer solchen Art und Weise hinzufügen, dass ich meine dictionary auf dem Formular machen ich Ihnen vorgestellt.

Vergessen Sie auch nicht, dass die Zahlen oder Carts flexibel ist. Ich werde es von einer Product.count bekommen.

Vielen Dank im Voraus.

Antwort

2

Wenn Ihr beide Array artID und qty Wert am gleichen Index haben für ein Wörterbuch erstellen Sie dieses

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"]; 
} 

Nun fügen Sie diese carts Array Dictionary mit Schlüssel

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

Ihre Antwort war teilweise korrekt, aber es hat mir geholfen, die Lösung zu erreichen. –

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"]; 
Verwandte Themen