由loadNibNamed创建的自定义UIView:owner:options:在removeFromSuperview之后泄漏

时间:2012-09-19 23:38:04

标签: ios uiview memory-leaks nib loadnibnamed

我有应用程序,我想用一些内容显示我的CustomView(继承自UIView)。但是我在运行时的每个点都不需要它,所以我想创建它并删除它以避免浪费内存。

我在单独的nib文件中有这个视图。并在viewController中加载此代码:

NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil];

for (id object in arr) {
    if ([object isKindOfClass:[MyCustomView class]])
        self.myCustomView = (MyCustomView *)object;
}  

[self.view addSubview:self.myCustomView];

myCustomView是viewController的属性

@property (nonatomic, strong) IBOutlet MyCustomView *myCustomView;

但是在Instruments中我可以看到#Living是3(例如,当我将代码调用上面三次时),#Transitory仍然是1而#Overall是4.这意味着MyCustomView泄漏:( 当我设置self.myCustomView = nil时,它是无用的:(

有人可以帮我解决这个漏洞吗?我正在使用ARC。

1 个答案:

答案 0 :(得分:0)

我认为[MyCustomView removeFromSuperview]将完成这项工作。 :)