performSelector,performSelectorOnMainThread和performSelectorInBackground之间的区别

时间:2010-07-14 06:53:17

标签: iphone

之间有什么区别

performSelectorOnMainThread

performSelectorInBackground

performSelector

由于

1 个答案:

答案 0 :(得分:20)

performSelector将简单地执行它所说的内容,当你想使用它的名称作为NSString执行选择器时,通常会使用它,这在以编程方式构建选择器名称的情况下很有用。如果您熟悉Java,可以将它与反射进行松散的比较。

performSelectorInBackground将在后台的新线程中异步执行选择器,这样您就可以在不锁定UI的情况下发送长任务

performSelectorOnMainThread将简单地在应用程序主线程上执行选择器。这有可能冻结ui,你可以保留它来执行明确更新ui的任务

编辑:

performSelectorOnMainThread上的更多内容,当您从后台运行的线程调用它时,这非常有用。一个示例是您有一个线程在后台处理任务并且您想要更新状态标签,只有在主线程上运行的线程才会更新UI,因此您将调用使用{{1}更新状态标签的选择器}