Blocks instead of performSelector:withObject:afterDelay: [duplicate]
There’s no built-in way to do that, but it’s not too bad to add via a category: @implementation NSObject (PerformBlockAfterDelay) – (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay { block = [[block copy] autorelease]; [self performSelector:@selector(fireBlockAfterDelay:) withObject:block afterDelay:delay]; } – (void)fireBlockAfterDelay:(void (^)(void))block { block(); } @end Credit to Mike Ash for the basic implementation.