Note that there are some explanatory texts on larger screens.

plurals
  1. POJSON Data in Table View iOS
    text
    copied!<p>I have to add a Tab in a Tabbar Controller in an iPhone App with a table view what is showing JSON data. </p> <p>My Problem is now that i see the table view but no data. Here is my code:</p> <p>.h File</p> <pre><code>#import &lt;UIKit/UIKit.h&gt; @interface FourthViewController : UIViewController &lt;UITableViewDataSource, UITableViewDelegate&gt; @property (strong, nonatomic) IBOutlet UITableView *myTableView; @property (nonatomic, strong) NSArray *tweets; @end </code></pre> <p>.m File</p> <pre><code>#import "FourthViewController.h" @interface FourthViewController () @end @implementation FourthViewController @synthesize myTableView; @synthesize tweets; - (void)viewDidLoad { [super viewDidLoad]; // Issue load request after the view has been loaded. [self issueLoadRequest]; } - (void)viewDidUnload { [self setMyTableView:nil]; [super viewDidUnload]; } - (void)issueLoadRequest { // Dispatch this block asynchronosly. The block gets JSON data from the specified URL and performs the proper selector when done. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSData* data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://api.twitter.com/1/statuses/user_timeline.json?screen_name=jmenter&amp;count=10"]]; [self performSelectorOnMainThread:@selector(receiveData:) withObject:data waitUntilDone:YES]; }); } - (void)receiveData:(NSData *)data { // When we have the data, we serialize it into native cocoa objects. (The outermost element from twitter is // going to be an array. I JUST KNOW THIS. Reload the tableview once we have the data. self.tweets = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; [self.myTableView reloadData]; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.tweets.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [[UITableViewCell alloc] init]; // The element in the array is going to be a dictionary. I JUST KNOW THIS. The key for the tweet is "text". NSDictionary *tweet = [self.tweets objectAtIndex:indexPath.row]; cell.textLabel.text = [tweet objectForKey:@"text"]; cell.textLabel.font = [UIFont boldSystemFontOfSize:11]; cell.textLabel.numberOfLines = 3; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // Spit out some pretty JSON for the tweet that was tapped. Neato. NSString *formattedJSON = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:[self.tweets objectAtIndex:indexPath.row] options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding]; NSLog(@"tweet:\n%@", formattedJSON); } @end </code></pre> <p>I have used this tut here: <a href="http://jeffmenter.wordpress.com/2012/05/30/json-ios-5-go/" rel="nofollow">http://jeffmenter.wordpress.com/2012/05/30/json-ios-5-go/</a></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload