How can I remove all performSelector:withObject:afterDelay:?

exc-bad-access, iphone, objective-c

Solution

Use `NSObject`'s:

-cancelPreviousPerformRequestsWithTarget:selector:object: 

to cancel any pending perform selectors.

Problem

I ran in to a `EXC_BAD_ACCESS` when deallocating an object that has few `performSelector:withObject:afterDelay` where the selector methods is calling another object and I am releasing the object. Somewhere in my class I am calling: ``` [self performSelector:@selector(callObject1Function) withObject:nil afterDelay:2.0]; ``` and in my class I have: ``` - (void)callObject1Function{ [object1 function1] // Here I am getting "EXC_BAD_ACCESS" } - (void)dealloc { [object1 release]; [super dealloc]; } ``` I just don't understand I thought when you `dealloc` it the object, everything associated with the object should be removed or canceled, even the `performSelector` with delay!

Original source