当解除分配一个EXC_BAD_ACCESS
的对象时,我跑进了performSelector:withObject:afterDelay
,其中选择器方法正在调用另一个对象并且我正在释放该对象......
//我班上的某个地方我正在打电话
[self performSelector:@selector(callObject1Function) withObject:nil afterDelay:2.0];
- (void)callObject1Function{
[object1 function1] // Here i am getting "EXC_BAD_ACCESS"
}
- (void)dealloc {
[object1 release];
[super dealloc];
}
我只是不明白我想当你dealloc
对象时,应该删除或取消与对象相关的所有内容,甚至延迟performSelector
!有人可以解释一下,谢谢......
答案 0 :(得分:27)
使用NSObject
:
-cancelPreviousPerformRequestsWithTarget:selector:object:
取消任何待处理的执行选择器。
答案 1 :(得分:23)
我在我的所有应用程序中使用了以下代码并且它正在运行。
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(MethodName) object:nil];
谢谢, Hemang。