iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   JSON Ervaring (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/122517-json-ervaring.html)

gobelz 27-07-12 01:17

JSON Ervaring
 
Beste,

Voor mijn nieuw project wil ik parsen middels JSON. Ik ben aardig op weg, maar nu heb ik een vraag of dit het juiste manier van aanpak is. Zie code:
Code:

SBJSON *parser = [[SBJSON alloc] init];
   
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
   
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
   
    NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
   
    NSArray *statuses = [parser objectWithString:json_string error:nil];
   
    NSDictionary* loan = [statuses objectAtIndex:0];
    NSString* name = [loan objectForKey:@"metal"];
    label.text = [NSString stringWithFormat:name];
   
    NSDictionary* loan1 = [statuses objectAtIndex:1];
    NSString* name1 = [loan1 objectForKey:@"metal"];
    label2.text = [NSString stringWithFormat:name1];

Ik heb 1 View zonder TableView. Een aantal UILabels waar de gegevens in moeten komen. Zie voorbeeld hierboven (code) of dit de juiste manier is om laag voor laag elk element te vullen in de UILabels.

Bovenstaand geeft wel het resultaat dat ik wil bereiken, maar is dit de juiste manier? Ik wil de gebruikelijke leren en niet iets wat wel werkt maar compleet niet de standaard is.

Graag advies.

Whacko 09-08-12 19:15

Ik zou de label een "tag" geven, en ze op basis hiervan opvragen en vullen. Voordeel is dat je het dan in een loop kunt doen door door de "tag" s heen te lopen.
iets in de trant van: (pseudo code)

Code:

for(int i = 100; i < 105; i++)
{
  NSString * tag = [NSString stringWithFormat:@"%d", i];
  UILabel * label = [view getElementByTag:tag]; // weet niet de preciese manier om het element op te halen even googlen dus
label.text = // blabla je code.
}



Alle tijden zijn GMT +2. Het is nu 15:55.