我有一个没有被释放的子类 UIView。我知道只有一个类正在创建我的视图的实例。我认为我有一个 NSTimer ivar。如果我注释掉该计时器并且当我点击此视图控制器上的取消按钮时,将调用此视图中的 dealloc。如果我不注释掉计时器,则永远不会调用 dealloc。
//CustomUIView
- (id) initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_pollTimer = [[NSTimer scheduleTimerWithTimeInterval:0.2 target:self selector:@selector(onPollTimerFired:) userInfo:nil repeats:YES] retain];
}
}
我想保留对这个计时器的引用,因为有时我希望暂停计时器。现在,我可以在我的视图上为计时器设置一个属性,并且在引用了我的自定义 uiview 的类的 dealloc 方法中,我可以在释放所述视图之前使其无效。我不太喜欢这种方法,因为我不想将此计时器暴露给外部实体。
有人有想法么?