Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between performSelector, performSelectorOnMainThread and performSelectorInBackground

Tags:

iphone

What is the difference between

performSelectorOnMainThread

performSelectorInBackground

performSelector

Thanks

like image 838
iPhoneDev Avatar asked Jul 14 '10 06:07

iPhoneDev


1 Answers

performSelector will simply do what it says, usually you would use this when you want to execute a selector using it's name as an NSString, this is useful in situations where you programatically build the name of a selector. If you are familiar with Java you could loosely compare it with reflection.

performSelectorInBackground will execute the selector asynchronously in a new thread in the background so that you can send off long tasks without locking up your UI

performSelectorOnMainThread will simply perform the selector on your applications main thread as it states. This has the potential of freezing the ui, you might reserve it to do tasks that update the ui explicitly

EDIT:

Some more on performSelectorOnMainThread, this is most useful when you you're calling it from a thread running in the background. An example would be you have a thread processing a task in the background and you want to update a status label, only threads running on the main thread will update the UI so you would call your selector that updates the status label using performSelectorOnMainThread

like image 98
Chris Wagner Avatar answered Oct 15 '22 13:10

Chris Wagner