我正在尝试将一些 GCD 集成到我的代码中,并且发现严重的瓶颈是我在大型数组中的对象之间执行的气泡比较。这是原始代码:
NSUInteger count = [arrayToDoWorkOn count];
for (int i = 0; i < count; i++)
{
for (int j = i + 1; j < count; j++)
{
[[arrayToDoWorkOn objectAtIndex:i] compare:[arrayToDoWorkOn objectAtIndex:j]];
}
}
得到我的漂移?因此,许多其他快速枚举任务可以通过转换轻松地 GCD'd
for (id obj in array)
{
[obj aMessage:stuff];
}
至:
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
[obj aMessage:stuff];
}];
有没有办法将我的前瞻排序气泡排序算法转换为我可以提供给 GCD 块实现的东西?