performSelector,performSelectorOnMainThread和performSelectorInBackground之间的区别

iPh*_*Dev 9 iphone

有什么区别

performSelectorOnMainThread

performSelectorInBackground

performSelector

谢谢

Chr*_*ner 20

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

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

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

编辑:

还有一些performSelectorOnMainThread,当你从后台运行的线程调用它时,这是最有用的.一个示例是您有一个线程在后台处理任务并且您想要更新状态标签,只有在主线程上运行的线程才会更新UI,因此您将调用使用更新状态标签的选择器performSelectorOnMainThread