0

я хочу, чтобы запустить некоторые операции задачи с завершенияcontinuation- последовательнокак сделать последовательную форму задачи асинхронных

, например я хочу, чтобы выполнить getSomethingsWithResultWithCompletion метод 3 раза, как преобразованные в последовательную форму задачи (например, op1 op2 зависит,. .. висимость оп N):

[MFLayer getSomethingsWithResultWithCompletion:^(id _Nullable response)Completion { 

// it will be run on another thread!** 
[MFRequestManager retrivesomeDataWithCompletion:^(id _Nullable response1) { 

// it will be run on another thread!** 
    [MFRequestManager retriveAnothersomeDataWithInfo:response1 WithCompletion:^(id _Nullable response2) { 

     NSLog(@"Finished with Result : %@",response2); 

}]; 

}]; 

}]; 

Проблема

если retrive methods выполнить в другом потоке (например, отправить запрос с AFNetworking) У меня возникла проблема с сериализацией, и будет запущена другая задача.

я есть попробовать с NSOperationQueue и семафор, но все еще есть проблемы

Я реализовал что-то подобное с NSOperationQueue и NSOperation, но реализация них работают на том же потоке, поэтому все задачи начинают последовательно, так что это работает отлично , operationQueueExample

+0

Не могли бы вы изменить методы «retrive» для «извлечения»? – gnasher729

ответ

-1

Вы не можете махать волшебной палочкой. Если getSomethingsWithResultWithCompletion не является вашим методом, вы не можете сказать, на каком потоке работает его обработчик завершения. Самый простой способ - вызвать второй метод в обработчике завершения первого метода.

1

Я решительно отверг этот подход, но , если вы отправите задачу на фоновый поток, вы можете использовать семафоры GCD.

+0

yes Я запускаю свою задачу в фоновом потоке, но в 'retrivesomeDataWithCompletion' я буду вызывать другую задачу в другом потоке, и эта причина проблемы! пожалуйста, проверьте ссылку github? – Mohamad

+0

Могу ли я реализовать их с помощью NSOperationQueue? – Mohamad

+0

ваш ответ помогает мне, но я еще не смущен! если у меня есть вложенное завершение (вопрос с обновлением), как мне это реализовать? – Mohamad

 Смежные вопросы

  • Нет связанных вопросов^_^