0

当我在一个有表格视图的导航控制器中来回移动时,我遇到了崩溃。我使用仪器查看发生了什么,我发现当我回到第一个视图控制器时,我得到了
[_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
}

我试图在这里和那里消除表格视图,并且还释放标签和人员类没有任何帮助。是什么让人民阶层无法获得自由。谢谢!

4

0 回答 0