tags:

views:

51

answers:

1

I am trying to parse using JSON Parser and the result which i get i have to put it into table view. I've passed a constant key value and a string .

Is there parsing steps wrong? or missed.

I have included the code for the JSON parser.

Thanks in advance.

SBJSON *parser = [[SBJSON alloc] init];

NSString *urlString =[NSString stringWithFormat:@"http://api.shopwiki.com/api/search?key=%@&q=%@",apiKey, string];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL: url];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

NSMutableArray *statuses = [[NSMutableArray alloc]init];
statuses = [parser objectWithString:json_string error:nil];
NSLog(@"Array Contents: %@", statuses);



NSMutableArray *statuses0 = [[NSMutableArray alloc]init];
statuses0 = [statuses valueForKey:@"offers"];
NSLog(@"Array Contents: %@", statuses0);


//For Title
NSMutableArray *statuses1 = [[NSMutableArray alloc]init];
statuses1 = [[[statuses valueForKey:@"offers"] valueForKey:@"offer"]valueForKey:@"title"];
NSLog(@"Array Contents 4 Title: %@", statuses1);

Here in statuses1 array i get 20 objects which are all titles, now i just want to display that titles into tableview:-

snippet code for tableview:-

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { NSLog(@"status count:%d",[statuses1 count]); return [statuses1 count]; }

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"Inside Tableview"); int counter=indexPath.row;

    NSString *CellIdentifier = [NSString stringWithFormat:@"%d",counter];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; cell.selectionStyle=UITableViewCellSelectionStyleNone;

    }

    NSLog(@"Inside Tableview 1");

    cell.textLabel.text=[statuses1 objectAtIndex:indexPath.row];

    NSLog(@"Inside Tableview 2");

    return cell; }

i get Bad excess exception whten it hits on :- cell.textLabel.text=[statuses1 objectAtIndex:indexPath.row];

Please give me the solution thanks in advance:-

A: 

If you're getting EXC_BAD_ACCESS on that line, it's probably because statuses1 has been released by the time cellForRowAtIndexPath is called. What block of code is this line in?

NSMutableArray *statuses1 = [[NSMutableArray alloc]init];

The statuses1 variable above is local to whatever scope you've declared it in. Do you then assign it to your UITableViewController.statuses1 ivar? Is that a retained property?

chrispix