我必須在具有表格視圖的iPhone應用程序的Tabbar控制器中添加一個選項卡什麼是顯示JSON數據。表格視圖中的JSON數據iOS
我的問題是現在,我看到表視圖,但沒有數據。這裏是我的代碼:
.h文件中
#import <UIKit/UIKit.h>
@interface FourthViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (strong, nonatomic) IBOutlet UITableView *myTableView;
@property (nonatomic, strong) NSArray *tweets;
@end
.m文件
#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&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
我已經使用這個嘖嘖這裏:http://jeffmenter.wordpress.com/2012/05/30/json-ios-5-go/
順便說一句,當你NSLog(@「twitter:%@」,twitter)時輸出是什麼? – 2012-07-13 08:17:55