5

我可以用@selectorin发送参数NSTimer吗?如果我想释放NSTimer,以下步骤是否正确dealloc

[timer invalidate];
[timer release];
4

4 回答 4

15
于 2009-07-23T13:49:59.503 回答
8

这两种方法做不同的事情。如果您拥有一个计时器(您保留了它,或者分配了它,或者复制了它),那么您应该释放它。如果您将它安排在一个运行循环上,那么您必须使其无效,以便运行循环释放它。如果你做了这两件事,那么你必须释放计时器并使计时器无效(但是通常让运行循环拥有计时器就足够了)。

于 2009-07-23T12:07:09.793 回答
1

总是,释放是你做的最后一件事。一旦你释放了一些东西,就不能保证取消引用对象是安全的,这意味着向它发送任何消息都不再安全。

于 2009-07-23T12:54:44.910 回答
0

这是释放可能仍在运行(并且您想停止)的计时器的正确方法。

于 2009-07-23T12:24:06.197 回答