我可以用@selector
in发送参数NSTimer
吗?如果我想释放NSTimer
,以下步骤是否正确dealloc
?
[timer invalidate];
[timer release];
这两种方法做不同的事情。如果您拥有一个计时器(您保留了它,或者分配了它,或者复制了它),那么您应该释放它。如果您将它安排在一个运行循环上,那么您必须使其无效,以便运行循环释放它。如果你做了这两件事,那么你必须释放计时器并使计时器无效(但是通常让运行循环拥有计时器就足够了)。
总是,释放是你做的最后一件事。一旦你释放了一些东西,就不能保证取消引用对象是安全的,这意味着向它发送任何消息都不再安全。
这是释放可能仍在运行(并且您想停止)的计时器的正确方法。