The performSelector: family has its limitations. Here is the closest setTimeout equivalent:
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 0.5);
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
// do work in the UI thread here
});
EDIT:
A couple of projects that provide syntactic sugar and the ability to cancel execution (clearTimeout):
- https://github.com/Spaceman-Labs/Dispatch-Cancel
- https://gist.github.com/zwaldowski/955123