我正在尝试拼凑并运行用户放在一起的任务列表。这些任务列表可能有数百或数千个项目。
据我所知,最简单和最明显的方法是构建一个数组,然后遍历它们:
NSArray *arrayOfTasks = .... init and fill with thousands of tasks
for (id *eachTask in arrayOfTasks)
{
if ( eachTask && [eachTask respondsToSelector:@selector(execute)] ) [eachTask execute];
}
对于台式机,这可能没问题,但对于 iphone 或 ipad,这可能是个问题。这是实现它的好方法,还是有更快的方法来完成同样的事情?
我询问 msg_send 发生多少开销的原因是我也可以直接进行 C 实现。例如,我可以将一个链表放在一起,并使用一个块来处理下一个任务。我会从中得到什么,还是真的比它的价值更麻烦?