我在释放一个对象时遇到了 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
也会延迟!
最佳答案
使用 NSObject
的:
-cancelPreviousPerformRequestsWithTarget:selector:object:
取消任何挂起的执行选择器。
关于iphone - 如何删除所有 performSelector :withObject:afterDelay:?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106906/