我一直试图解决这个问题几个小时。当我尝试滚动时,我的应用程序不断崩溃。我查看了可重复使用的部分,但仍然卡住了。
更新:我正在使用ARC& amp;运行xcode 4.2我的访问错误很糟糕。
更新2:我试图使用Zombies找到问题,但仍然无法解决问题。 僵尸的屏幕截图:http://img440.imageshack.us/img440/7651/instruments.png
更新3 [问题解决]:我确保ViewDidUnload中的所有出口都是[self set ___:nil]。我还为添加的视图创建了一个属性,而不是在.m文件中创建视图。 底部的评论也帮助了我: get "EXC_BAD_ACCESS" when trying dismissModalViewController after parent view controller has been viewDidUnload
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [self.sortedKeys count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [self.sortedKeys objectAtIndex:section];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
listData2 =[self.tableContents objectForKey:
[self.sortedKeys objectAtIndex:section]];
return [listData2 count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
questionTitle = [[self.tableContents objectForKey:[self.sortedKeys objectAtIndex: [indexPath section]]] objectAtIndex:[indexPath row]];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Foobar"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Foobar"];
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.textLabel.textColor = [UIColor blueColor];
}
cell.textLabel.text = questionTitle;
return cell;
}
答案 0 :(得分:0)
跟踪堆栈确实非常有用,但我也相信您应该将listData2 = ..
移至viewWillApear:
。
- (void)viewWillAppear:(BOOL)animated
{
listData2 =[self.tableContents objectForKey: [self.sortedKeys objectAtIndex:section]];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [listData2 count];
}
另外,请尝试将NSLogs
添加到其他UITableView
方法中,例如:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSLog(@"numberOfSectionsInTableView: self.sortedKeys count: %i",[self.sortedKeys count]);
return [self.sortedKeys count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSLog(@"titleForHeaderInSection: self.sortedKeys object: %@"[self.sortedKeys objectAtIndex:section]);
return [self.sortedKeys objectAtIndex:section];
}
答案 1 :(得分:0)
不是在您的cellForRowAtIndexPath中设置questionTitle(可能是ViewController的属性),而是定义一个本地字符串:
NSString *questionTitle2 = ...
然后使用它来设置单元格标签:
cell.textLabel.text = questionTitle2;
这有什么不同吗?