当我在一个有表格视图的导航控制器中来回移动时,我遇到了崩溃。我使用仪器查看发生了什么,我发现当我回到第一个视图控制器时,我得到了
[_NSCoreManagedObjectID allocateBatch:Count:]
泄漏。这是 Instruments 的屏幕截图
我来回走动的次数越多,泄漏的次数就越多。这会是什么原因?我在 viewdidunload 中将 nsfetchedresultcontroller 设置为 nil,但是当我在选项卡之间切换时,我没有将它设置为 nil。
谢谢!更新:我做了一些测试,我发现如果我评论
Person *person = [self.fetchedResultsController objectAtIndexPath:indexPath];
在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"personCell";
PeopleListTableViewCell *cell = (PeopleListTableViewCell *) [tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[PeopleListTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
Person *person = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.personName.text = person.fullname;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd-yyyy"];
NSDate *tmpDate = person.dateofbirth;
NSString *strDate = [dateFormatter stringFromDate:tmpDate];
cell.personDateOfBirth.text = strDate;
NSString *imgURL=[person.imageurl stringByAppendingString:@"?maxheight=120&maxwidth=156"];
[cell.personImage setImageWithURL:[NSURL URLWithString:imgURL] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
return cell;
}
泄漏消失。我将此 tableviewcontroller 用作不同 uivewcontroller 中 tableview 的委托。
这就是我在单击按钮以显示此表时设置它的方式
- (void)signPeople
{
self.signInfoView.hidden = YES;
self.pplTableView.hidden = NO;
self.hud = [[ATMHud alloc]initWithDelegate:self];
[self.hud setActivity:YES];
self.hud.shadowEnabled = YES;
[self.view addSubview:self.hud.view];
[self.hud show];
if(!self.pplListTableViewController){
self.pplListTableViewController = [[PeopleListTableViewController alloc]init];
}
self.pplListTableViewController.delegate = self;
self.pplTableView.delegate = self.pplListTableViewController;
self.pplTableView.dataSource = self.pplListTableViewController;
//shows the People List
[self.pplListTableViewController setupFetchResultsController];
[self.pplTableView reloadData];
[self.pplTableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES]; //scroll to top
}
我试图在这里和那里消除表格视图,并且还释放标签和人员类没有任何帮助。是什么让人民阶层无法获得自由。谢谢!