这是我的viewController.m文件中的示例getData方法
-(void) getData {
// Create new SBJSON parser object
SBJsonParser *parser = [[SBJsonParser alloc] init];
// Prepare URL request to download statuses from Twitter
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://twitter.com/statuses/public_timeline.json"]];
// Perform request and get JSON back as a NSData object
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
// parse the JSON response into an object
// Here we're using NSArray since we're parsing an array of JSON status objects
NSArray *statuses = [parser objectWithString:json_string error:nil];
// Each element in statuses is a single status
// represented as a NSDictionary
for (NSDictionary *status in statuses)
{
NSString *text = [status objectForKey:@"text"];
// You can retrieve individual values using objectForKey on the status NSDictionary
// This will print the tweet and username to the console
NSLog(@"%@ - %@", [status objectForKey:@"text"], [[status objectForKey:@"user"] objectForKey:@"screen_name"]);
}
}
我想要做的是取[[status objectForKey:@"user"]
并将其设为表格视图中的单元格名称,我将如何进行此操作?
编辑:好的,所以我把它变成了一个字符串,但现在我试着加载它崩溃说[__NSCFDictionary isEqualToString:]: unrecognized selector sent to instance 0x6892b60'
并显示cell.textLabel.text = [[statusArray objectAtIndex:indexPath.row] objectForKey:@"user"];
旁边的帖子Thread 1 SIGABRT
答案 0 :(得分:2)
在getData函数中收集数组中的所有数据。说它是statusArray。 现在,从UItableViewController派生出一个viewcontroller。在此类NSArray类型中创建一个成员,并为其分配上面的数组。 将以下函数写入控制器类。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return statusArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [statusArray objectAtIndex:indexPath.row] objectForKey:@"user"];
return cell;
}
答案 1 :(得分:0)
tableView:numberOfRowsInSection:
- 返回“状态”的数量tableView:cellForRowAtIndexPath:
- 返回一个UITableViewCell,其textLabel.text设置为您的文本。Apple的文档中有很多示例,包括使用Xcode的“Master-Detail App”模板创建新应用程序时获得的项目。