Okay, then setting the timer to nil after you invalidate it will probably stop that crash. It might be hiding a deeper problem of course; I'd add an NSLog at the top of checkCollision to see if it's still getting called after the timer is invalidated.
I see where you are calling checkCollision directly; I assume that checkCollision is also called somewhere down the chain from showActivity? And not from onTimer, right? If checkCollision is getting called from onTimer then you'll have a problem, because onTimer (and checkCollision) will keep getting called even though you invalidate myTicker.
Also, if you accidentally call "start" twice then you'll have a problem, because you'll have four timers (two calling, two calling onTimer) and you'll only have a pointer to one of them. One way to fix that would be to always invalidate myTicker before creating a new one.
Code:
//kill old timer
[myTicker invalidate];
//create new timer
myTicker = [NSTimer scheduledTimerWithTimeInterval:.09 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];