-1

我有一个已分配的 UIView 自定义子类。每次我调用该类时,我都需要重新分配它的子视图,如下所示:

- (void)invoke{
    [[self subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
    for(NSDictionary *dict in self.list){
        MySubview *subView = [[MySubview alloc] initWithFrame:self.view.frame];
        [self addSubview:subView];
    }
}

所以结果是每次我调用它,内存都会增加大约 4MB。
那么我该如何修复它并优化我的记忆呢?

4

1 回答 1

1

[someView removeFromSuperView]不一样someView = nil;

您必须确保您尝试根除的每个视图都设置为 nil。否则他们会一直徘徊,直到 ARC 认为是时候删除它们(可能是在 superview 被破坏时)或者你调用release它们(对于非 ARC)

于 2013-11-14T13:51:16.683 回答