Существуют ли учебные пособия о том, как использовать NSOperationQueue без блоков? - PullRequest
2 голосов
/ 31 мая 2011

Мое приложение должно работать на iOS 3.2, а методы, такие как -addOperationWithBlock: работают только в версии> 4.0.

Но NSOperationQueue был доступен с iOS 2.0, поэтому я хотел бы попробовать его «по-старому». Кто-нибудь знает удобный учебник, который показывает основы того, как использовать NSOperationQueue без блоков?

Ответы [ 3 ]

6 голосов
/ 31 мая 2011

это довольно просто с операциями вызова. Это операции, которые позволяют отправить сообщение определенному объекту с некоторым параметром объекта (необязательно).

Итак, учитывая этот метод, который вы хотите вызвать:

- (void)doSomething {

        NSLog (@"Did it!");
}

Вы можете сделать что-то подобное, чтобы это произошло:

// Get or create some queue
NSOperationQueue *someQueue = [NSOperationQueue mainQueue];

// create an invocation operation
NSInvocationOperation *invocationOp = [[NSInvocationOperation alloc]  initWithTarget:self
                                                                                selector:@selector(doSomething)
                                                                                 object:nil];

[someQueue addOperation:invocationOp]; // Add the operation to the queue

[invocationOp release];

Надеюсь, это поможет.

3 голосов
/ 31 мая 2011

@ Firoze Lafeer привел пример с операцией NSInvocation, но вы также можете использовать свой собственный подкласс NSOperation.

В официальной документации показан пример каждого типа операции, которую вы можете использовать.Даже с доступными блоками иногда предпочтительнее использовать подкласс NSOperation для больших задач.

2 голосов
/ 15 августа 2011

Нашел довольно хороший учебник здесь .Это также выходит за рамки темы и дает информацию о том, почему не всегда рекомендуется извлекать данные из основного потока.

...