0

我在一个外部类 ( NSObject) 类中解析 JSON 数据,然后将解析的数据组织到一个数组中。然后将该数组放入我的表格视图中。因为解析信息需要更长的时间才能完成viewDidLoad数组始终设置为零。

代码:

- (void)viewDidLoad
{
//Fetching Data
[super viewDidLoad];
myClass = [[MyClass alloc] init];
[myClass fetchDataWithTarget:self];

//Initialize the dataArray
dataArray = [[NSMutableArray alloc] init];

//First section data
NSArray *firstItemsArray = myClass.fechedDataArray;
NSDictionary *firstItemsArrayDict = [NSDictionary dictionaryWithObject:firstItemsArray forKey:@"data"];
[dataArray addObject:firstItemsArrayDict];

}


- (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];
}

NSDictionary *dictionary = [dataArray objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"data"];
NSString *cellValue = [array objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;

return cell;
}  

我如何确保firstItemsArray在获取数据后设置它。

注意:表格视图显然还有更多内容,我做了所有字典的内容来分隔部分,而不是什么。

4

1 回答 1

0

您必须先将 JSON 数据加载到数组中

- (void) viewDidLoad

或使用某种类型的线程(异步方法),例如:

performSelectorInBackground:withObject

NSOperation 或 Grand Central Dispatch

于 2013-06-11T03:25:15.993 回答