之间有什么区别
performSelectorOnMainThread
performSelectorInBackground
performSelector
由于
答案 0 :(得分:20)
performSelector将简单地执行它所说的内容,当你想使用它的名称作为NSString执行选择器时,通常会使用它,这在以编程方式构建选择器名称的情况下很有用。如果您熟悉Java,可以将它与反射进行松散的比较。
performSelectorInBackground将在后台的新线程中异步执行选择器,这样您就可以在不锁定UI的情况下发送长任务
performSelectorOnMainThread将简单地在应用程序主线程上执行选择器。这有可能冻结ui,你可以保留它来执行明确更新ui的任务
编辑:
performSelectorOnMainThread
上的更多内容,当您从后台运行的线程调用它时,这非常有用。一个示例是您有一个线程在后台处理任务并且您想要更新状态标签,只有在主线程上运行的线程才会更新UI,因此您将调用使用{{1}更新状态标签的选择器}