Right - if you remove the rock and no one is retaining it, it'll get dealloc'ed. Calling a method on a destroyed object will usually give you an EXC_BAD_ACCESS. That's why I said you might want to move it to the top instead.
If you still want to remove it, do this:
Code:
[myRock removeFromSuperview];
myRock=nil;
Now myRock points to nil, and you can call any methods you want - it'll have no effect and will always return zero. Or can check if (myRock==nil) to see if the rock exists or not before taking an action.