2016-04-23 8 views
0

In meinem Projekt abzurufen ich Antwort vom Server in Form ich bin Abrufen der Objekte in unterschiedlichen Indizeskann nicht die Daten aus Wörterbuch

response: 

    <JKArray 0x7fa2e09036b0>(
     { 
      id = 23; 
      name = "Name1";  
     }, 
     { 
      id = 24; 
      name = "Name2"; 
     } 

    ) 

Aus dieser Antwort Array bin immer und das Hinzufügen sie dann in einem MutableArray und dann in ein contactsDictionary.

self.contactsDictionary = [[NSMutableDictionary alloc] init];  

      for(int i=0 ; i < [response count] ; i++) 
      { 
       NSMutableArray *mutableArray=[[NSMutableArray alloc] init]; 
       [mutableArray addObject:[response objectAtIndex:i]]; 

       [self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]]; 

      } 

Ich möchte von der contactsDictionary im Projekt an einem anderen Standortdaten für Key @ „name“ abzurufen. So, wie es geht. Vielen Dank im Voraus ....

Antwort

0

Dies ist der falsche Weg, wie Sie Ihre Kontakte Dictionary einstellen.

unterhalb der Linie

[self.contactsDictionary setObject:mutableArray forKey:[NSString stringWithFormat:@"%i",i]]; 

mit

[self.contactsDictionary setObject:[mutableArray objectAtIndex :i] forKey:[NSString stringWithFormat:@"%i",i]]; 

becuase jedes Mal ersetzen Array neue Objekte haben so Ihre erste Wert die Kontakte Wörterbuch ein Objekt dann zweite Wert haben zwei bezwecken. also solltest du das nicht tun.

jetzt, wenn Sie name dann rufen wie

NSString *name = [[self.contactsDictionary objectForKey : @"1"]valueForKey : @"name"]; 

vermeiden Syntax Fehler abrufen möchten, wenn eine da ans hier eingegeben haben.

-Update per Kommentar:

nehmen Sie nur eine MutableArray für EXA,

NSMutableArray *arr = [[NSMutableArray alloc]init]; 
[arr addObject : name]; //add name string like this 

hoffen, dass dies :)

0

Aloha von Ihrem respond helfen kann ich Ihnen Belo geben beantworten wie das nach deiner Antwort.

for(int i=0;i<[arrRes count];i++); 
{ 
    NSString *strId = [NSString stringWithFormat:@"%@",[[arrRes obectAtIndex:i]objectForKey:@"id"]]; 
    NSString *StrName = [NSString stringWithFormat:@"%@",[[arrRes objectAtIndex:i]objectForKey:@"name"]]; 

    NSLog(@"The ID is -%@",strId); 
    NSLog(@"The NAME is - %@",strName); 

    }