detachNewThreadSelector和performSelectorInBackground都用于在后台调用方法。
这两种方法有什么区别吗?或者它们的工作方式相同吗?
最佳答案
它们本质上是相同的,但范例略有不同。他们在幕后做着完全相同的事情。唯一真正的区别是 -[performSelectorInBackground:withObject:]
遵循所有其他 performSelector 样式方法,因为它们是在 NSObject
上定义的,并且您实际上定义了您希望执行的选择器的消息。
一般来说,您几乎不需要调用这些方法中的任何一个。优先使用 Grand Central Dispatch 或 NSOperation 和 NSOperationQueue 来分解其他线程上昂贵的操作。 GCD 和 NSOperation
类都为您提供内存管理、线程池管理以及使用旧式调度方法时您会错过的许多其他功能。
关于objective-c - Objective C - 后台执行选择器并且分离新线程选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148980/