tableView没有填充数组中的数据

时间:2012-08-07 20:33:07

标签: ios json nsmutablearray tableview cell

我是iOS开发和Objective-C编程的新手,请原谅我的“noobiness”。

这就是事情,我有一个函数可以构建一个从JSON对象获取数据的数组。 然后我有第二个函数,负责用我的数组中包含的数据填充tableView。

问题是,我的tableView函数似乎无法访问此数组的内容,即使该数组已添加到我的头文件中并在主文件中实现。 tableView仍为空......

你知道为什么会这样吗?

以下是功能,非常感谢您的帮助!

1)阵列构建功能:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.responseData appendData:data];

    //Get data
    NSError *myError = nil;
    NSDictionary *res = [NSJSONSerialization JSONObjectWithData:self.responseData options:NSJSONReadingMutableLeaves error:&myError];

    //Extract titles
    NSMutableArray *myResults = [[NSMutableArray alloc] init];
    NSArray *results = [res objectForKey:@"data"];

    for (NSDictionary *result in results) {
        NSString *title = [result objectForKey:@"colors"];
        NSLog(@"colors: %@", colors);
        [myResults addObject:colors];
    }

    self.colorNames = myResults;    
}

2)TableView填充功能:

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}

//Set cell text
NSString *colorString = [self.colorNames objectAtIndex: [indexPath row]];
NSLog(@"%@",colorString);
cell.textLabel.text = colorString;

    return cell;
}

3 个答案:

答案 0 :(得分:0)

您确定在收到json数据后重新加载表格视图数据吗?我建议您在[self.tableView reloadData];方法结束时使用connection:didReceiveData:。否则,只有在加载视图后才会调用方法tableView:cellForRowAtIndexPath:

干杯, ANKA

答案 1 :(得分:0)

我猜你必须实现更多的UITableViewDataSource协议。 你必须提供至少一个方法 tableView:numberOfRowsInSection:返回你的表的实际行数,然后调用 tableView:cellForRowAtIndexPath:来填充表格你的数据。

祝福

布鲁诺

答案 2 :(得分:0)

row是indexPath的一个方法吗?我认为它应该是indexPath.row而不是[indexPath row]