如何删除所有performSelector:withObject:afterDelay:?

Uni*_*nis 16 iphone exc-bad-access objective-c

我在运行EXC_BAD_ACCESS时遇到了一个对象,这个对象几乎没有performSelector:withObject:afterDelay选择器方法调用另一个对象而我正在释放该对象......

//我班上的某些地方,我正在打电话

[self performSelector:@selector(callObject1Function) withObject:nil afterDelay:2.0];
Run Code Online (Sandbox Code Playgroud)

我只是不明白我想当你dealloc的对象,与对象相关的一切都应该删除或取消,即使performSelector有延迟!有人可以解释一下,谢谢......

Ben*_*ieb 28

使用NSObject的:

-cancelPreviousPerformRequestsWithTarget:selector:object: 
Run Code Online (Sandbox Code Playgroud)

取消任何待处理的执行选择器.

  • 也只是NSObject的+ cancelPreviousPerformRequestsWithTarget:如果你想要消除所有选择器和对象执行对该目标的请求而不指定选择器和对象 (18认同)

Hem*_*ang 24

我在我的所有应用程序中使用了以下代码,它正在运行.

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(MethodName) object:nil];
Run Code Online (Sandbox Code Playgroud)

谢谢,Hemang.