小编Den*_*nis的帖子

iOS 7.0和ARC:UITableView从未在行动画后取消分配

我有一个非常简单的测试应用程序与ARC.其中一个视图控制器包含UITableView.制作行动画(insertRowsAtIndexPathsdeleteRowsAtIndexPaths)UITableView(和所有单元格)后永远不会释放.如果我使用 reloadData,它工作正常.iOS 6没有问题,只有iOS 7.0.任何想法如何解决这个内存泄漏?

-(void)expand {

    expanded = !expanded;

    NSArray* paths = [NSArray arrayWithObjects:[NSIndexPath indexPathForRow:0 inSection:0], [NSIndexPath indexPathForRow:1 inSection:0],nil];

    if (expanded) {
        //[table_view reloadData];
        [table_view insertRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationMiddle];
    } else {
        //[table_view reloadData];
        [table_view deleteRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationMiddle];
    }
}

-(int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return expanded ? 2 : 0;
}
Run Code Online (Sandbox Code Playgroud)

table_view是一种类TableView(UITableView的子类):

@implementation TableView

static int totalTableView;

- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
{
    if (self = [super initWithFrame:frame style:style]) {

        totalTableView++;
        NSLog(@"init tableView (%d)", totalTableView);
    }
    return self;
}

-(void)dealloc …
Run Code Online (Sandbox Code Playgroud)

memory-leaks uitableview ios automatic-ref-counting ios7

11
推荐指数
3
解决办法
5235
查看次数

10
推荐指数
2
解决办法
8979
查看次数