Вопрос

I'm hoping to convert this 10.6 code to 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)

    });
}

What I have so far:

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

  // background process

    // contact webservice for IP-address information

    // update UI (NSMenuItem)

  // end background process

[pool drain];

It appears that a can use dispatch_async, but not blocks and dispatch_queue_t.

Это было полезно?

Решение 2

It really depends on what happens in the // stuff here section.

Essentially, it comes down using a pre-GCD form of concurrency. If you're targeting 10.5, then you also have NSOperation at your disposal.

Другие советы

If you need to support Leopard, you could always go back to old school "NSThread" (<-- documentation linked here), which continues to be fully supported up and through 10.9 & beyond.

Blocks and dispatch_queue_t came in with MacOS 10.6 & iOS 4.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top