I have a simple JSON feed which I can parse and see in the console but I can't seem to get it to display in my table view. I am using Xcode 5.0.2. I am not sure why I can see it in the for loop when echoed to the console, but not in the table view.
FYI, I am brand new to building in xcode and objective c and I am using this video tutorial as guide.
My Json looks like this:
[ { "first_name": "Bill" }, { "first_name": "Ted" }, { "first_name": "George" } etc... ]
PhotoTableViewController.h
#import #import "DisplayViewController.h" @interface PhotosTableViewController : UITableViewController { IBOutlet UITableView *mainTableView; NSArray *news; NSMutableData *data; } @end
PhotoTableViewController.m
@interface PhotosTableViewController () { NSMutableArray *photos; NSArray *_locations; } - (void)viewDidLoad { NSURL *url = [NSURL URLWithString:@"http://feedurl.json"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [[NSURLConnection alloc] initWithRequest:request delegate:self]; } // some code left out for brevity - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. //return photos.count; NSLog(@"news count: %lu", news.count); return news.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell.textLabel.text = [[photos objectAtIndex:indexPath.row] objectForKey:@"first_name"]; NSLog(@"anything: %@", [[photos objectAtIndex:indexPath.row] objectForKey:@"first_name"] ); return cell; } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { data = [[NSMutableData alloc] init]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData { [data appendData:theData]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; news = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; NSDictionary *first_name; for (int i=0; i (cant put less than sign here breaks code view) [news count] i++) { first_name = [news objectAtIndex:i]; NSLog(@"Statuses: %@", [first_name objectForKey:@"first_name"]); } [mainTableView reloadData]; } -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { UIAlertView *errorView = [[UIAlertView alloc] initWithTitle:@"Error" message:@"The download could not complete - please make sure you're connected to the internet." delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil]; [errorView show]; [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; }