OS X SDK 10.5版本的dispatch_queue_t

时间:2014-04-25 01:08:27

标签: objective-c objective-c-blocks osx-leopard

我希望将此10.6代码转换为10.5:

@autoreleasepool {

    dispatch_queue_t queue = dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_async(queue,^(){

      // contact webservice for IP-address information

      // update UI (NSMenuItem)

    });
}

到目前为止我所拥有的:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

  // background process

    // contact webservice for IP-address information

    // update UI (NSMenuItem)

  // end background process

[pool drain];

似乎a可以使用dispatch_async,但不能使用blocksdispatch_queue_t

2 个答案:

答案 0 :(得分:1)

如果您需要支持Leopard,您可以随时返回旧学校"NSThread"(< - 此处链接的文档),这将继续得到全面支持,并通过10.9&超出。

Blocks and dispatch_queue_t came in with MacOS 10.6 & iOS 4

答案 1 :(得分:0)

这实际上取决于// stuff here部分的内容。

基本上,它使用预GCD形式的并发来降低。如果您的目标是10.5,那么您也可以使用NSOperation