They work in the same way, and since there is no repeat (no nth time to consider, etc.) I don’t know if there is really a difference here besides preference or code appearance. I can’t invalidate the performSelector of course.

I am curious if anyone has an opinion on this type of use case or not.

Personally I like the performSelector path for this type of thing – it’s cleaner in appearance and communicates the idea a bit better. To me at least.