【发布时间】:2011-02-09 01:22:38
【问题描述】:
我正在尝试将一些 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 转换
for (id obj in array)
{
[obj aMessage:stuff];
}
到:
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
[obj aMessage:stuff];
}];
有没有办法将我的look-ahead-sorta-bubble-sorta-algorithm-thing 转换为我可以提供给 GCD 块实现的东西?
【问题讨论】:
-
这与仅 GCD 块无关。
-
嘿Grimless,如果我的回答回答了你的问题,别忘了标记为正确答案! ;)
-
哎呀。我可以发誓我已经这样做了。昨天很忙。再次感谢。
标签: objective-c objective-c-blocks fast-enumeration