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