> It's funny because the whole reason I changed it to not use -performSelector:afterDelay: is because we're not guaranteed to have a runloop here.
> 

We aren't we guaranteed to have a run loop here? In what situations don't we have one?