0

我正在使用标签栏应用程序。在其中一个选项卡中,我将 tableView 控制器嵌入为 SplitView。当此选项卡变为活动状态时,我会进行 URL 调用以从服务器获取一些数据。我无法在 tableView 中填充数据。我试过'[self.tableView reloadData]',但应用程序崩溃了。我的 ViewController 类是 UITableViewController 的子类。

- (void)didReceiveUserListFromServer
{
NSData *jsonData = responseData;
NSError *error=nil;

NSMutableDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONWritingPrettyPrinted error:&error];
userDetailsArray = [responseDict objectForKey:@"userDetails"];
NSLog(@"count===%d",[userDetailsArray count]);   //This returns a non-zero number
[self.tableView reloadData];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [userDetailsArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *CellIdentifier = @"ReturningPatientSearchResultCell";

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



NSMutableDictionary *singleUserDetail = [userDetailsArray objectAtIndex:indexPath.row];
cell.textLabel.text=[singleUserDetail objectForKey:@"Name"];  //EXC_BAD_ACCESS here

return cell;
}
4

1 回答 1

0

我会尝试在你的类中创建userDetailsArray一个强大的属性,并使用self.userDetailsArray它来设置它的值和对它的引用。

(奇怪的是,数组对以后的访问有效count而不是对以后的访问有效,但释放的内存似乎是最合乎逻辑的解释。)

您还可以尝试为您的构建方案打开僵尸,看看是否能提供更好的信息。

于 2012-09-24T14:24:19.727 回答