遇到iPhone NSTimer失效问题

好的,所以我知道我刚才问了一个类似的问题,但这是不同的。我现在有两个定时器在各自按钮的TouchDown事件上发生。在TouchUpInside事件中,我有各自的代码,告诉每个计时器
[pressTimer invalidate]
pressTimer = nil
。现在我添加第二个计时器时发生的问题是,当选择器被触发时(因此释放按钮并触发TouchUpInside事件),应用程序崩溃并吐出一个
Not recognized [NSCFTimer -invalidate]
或类似的东西。按钮正常工作,直到定时器触发,甚至在我松开手指之前不会崩溃。我认为正在发生的事情是TouchUpInside事件试图使无效/触发的计时器无效,因为它在计时器仍在运行时工作正常。我想知道为什么会发生这种情况,因为它在我添加第二个计时器之前从未发生过。我的临时修复是设置定时器的
repeating:YES
部分,这支持我的理论,它不能使无效/触发的定时器无效。有什么建议? *奖励:在相关的说明中,在iTunes Connect中出现之前,我需要从人们那里获得多少次崩溃?     
已邀请:
首先,
pressTimer=nil
没有用处;
nil
赋值仅在使用setter时在
retain
ed属性上释放对象,即
self.timer = nil;
。 (这实际上是这样的:
[self setTimer:nil]
!) 但即便如此,如果你错误引用自己并且确实使用了二传手,那么不需要发布一个
NSTimer
实例,它只需要
invalidate
d。你的“引用”错误不应该发生。 至于你的理论:在这种情况下你可能会把
invalidate
看作
release
--你不能经常这样做...... 手册指出无效需要从安装它的同一个线程调用,除此之外没有任何理由可以崩溃。     

要回复问题请先登录注册