Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone performSelector、performSelectorOnMainThread和performSelectorInBackground之间的差异_Iphone - Fatal编程技术网

Iphone performSelector、performSelectorOnMainThread和performSelectorInBackground之间的差异

Iphone performSelector、performSelectorOnMainThread和performSelectorInBackground之间的差异,iphone,Iphone,两者的区别是什么 performSelectorOnMainThread 性能选择背景 性能选择器 谢谢,performSelector只需执行它所说的操作,通常当您想使用其名称作为NSString来执行选择器时,您会使用它,这在以编程方式构建选择器名称的情况下非常有用。如果您熟悉Java,可以粗略地将其与反射进行比较 performSelectorInBackground将在后台的新线程中异步执行选择器,这样您就可以在不锁定UI的情况下发送长任务 performSelectorOnMainTh

两者的区别是什么

performSelectorOnMainThread

性能选择背景

性能选择器


谢谢,performSelector只需执行它所说的操作,通常当您想使用其名称作为NSString来执行选择器时,您会使用它,这在以编程方式构建选择器名称的情况下非常有用。如果您熟悉Java,可以粗略地将其与反射进行比较

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

performSelectorOnMainThread只需在应用程序主线程上按其状态执行选择器。这可能会冻结ui,您可以保留它以执行显式更新ui的任务

编辑:


关于
performSelectorOnMainThread
的更多信息,这在从后台运行的线程调用它时非常有用。例如,如果您有一个线程在后台处理任务,并且希望更新状态标签,则只有主线程上运行的线程才会更新UI,因此您可以调用选择器,使用
performSelectorOnMainThread

Bro更新状态标签,你所说的冻结ui的可能性是什么意思?所有ui任务和事件都在主线程上运行,因此,如果你用其他长时间运行的任务阻止它,你的ui将“冻结”,在该任务完成之前,你的用户将无法与你的应用程序交互。