2016-06-27 10 views
-2

Wie aus diesem multidimensionalen Array in iOS zu iterieren? Diese Daten können aus Richtung JSONIterate von Multi-Dimension-Array in iOS

(
     (
     "burger meal", 
     "getImage.ashx?id=1", 
     150, 
     300, 
     "get a free burger" 
    ), 
     (
     "chinese combo", 
     "getImage.ashx?id=2", 
     350, 
     700, 
     "get a combo free" 
    ), 
     (
     "cheeese cake", 
     "getImage.ashx?id=3", 
     350, 
     700, 
     "get a cake free with meal" 
    ) 
) 

I Objekt bei Index verwenden müssen 3 z.B. = 150,350,350 in UITableView.

Ich habe schon versucht, diese

NSArray *array = jsonArray; 

for (NSArray *newArray in array) { 
    [newArray addObjectFromArray:array]; 
} 
+0

also ... was ist dein Code dafür ... hättest du irgendwas probiert ?? –

+0

hast du versucht wie: array [0] [3]? –

+1

Um die Frage zu beantworten, müssen Sie jedoch erklären, dass die Daten aus diesen (JSON?) Daten in eine Instanzvariable extrahiert werden sollen. Daher müssen Sie erklären, wann dieser Ivar zugewiesen werden soll, bevor die Iteration tatsächlich angezeigt wird. Eine vollständige Antwort wird dann vom OP mit "Ich komme nicht zur Arbeit" beantwortet. – Droppy

Antwort

1

Dies ist einfach. Lassen Sie TableView die Arrays für Sie iterieren. Ihr TableView iteriert bereits, fügen Sie dem Overhead nicht hinzu, indem Sie das Array selbst durchlaufen. Sie werden nur Verarbeitungsleistung verschwenden, wenn Sie das tun.

Zuerst ändern Sie Ihre numberOfRowsInSection Delegatmethode wie folgt aus:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [jsonArray count]; //Provide your json array here. 
} 

Dann müssen Sie diese Methode in Ihrem cellForRowAtIndexPath tun:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //Do everything that you need to do to get the cell. Here we will deal with only string retrieval from json array. 
    if(jsonArray count]>indexPath.row){ 
     NSArray *innerArray = [jsonArray objectAtIndex:indexPath.row]; //You got the inner array 
     if(innerArray count]>2){ 
      NSString *yourDesiredString = [innerArray objectAtIndex:2]; //You got the string. Use it now as you wish. It will be 150 for the first cell, 350 for the second and 350 for the third one as well. 
     } 

    } 

} 

ich keine Ausnahme prüft hier hinzugefügt haben, das ist was du selbst tun musst. Ich habe grundlegende Überprüfungen hinzugefügt, um Abstürze bei irrelevanten Daten zu vermeiden.

Dies ist mit der Annahme, dass Sie diese Zeichenfolge für jede Zelle festlegen möchten. Wenn ich deine Frage missverstanden habe oder du etwas fragen musst, hinterlasse einen Kommentar

2

Das Versuchen, in diesem Code arrResult enthalten alle Werte haben Sie bei bestimmten Position erforderlich.

NSArray *array = jsonArray; 
NSMutableArray *arrResult = [[NSMutableArray alloc]init]; 

for (NSArray *newArray in array) { 
     [arrResult addObject:[newArray objectAtIndex:2]]; 

} 
+0

Warum iterieren Sie das Array erneut, wenn Sie bereits eine Tabellenansicht haben? – NSNoob

+0

, weil sie alle Wert auf einer bestimmten Position auf einmal benötigen. –

+0

Sie können es auch in TableView bekommen. TableView arbeitet mit IndexPath.row und verwendet es als Index. – NSNoob