2015-10-13 2 views
2

Есть ли способ создать NSoperation во время выполнения и добавить его как зависимость от выполняемой операции и уже в состоянии выполнения?Advanced NSOperation - добавить зависимость во время выполнения

Если нет, есть ли другой альтернативный способ достижения этого?

Например (использование случай, когда мне это нужно):

на основе ответа от сервера, я хочу, чтобы начать новую NSOperation, в то время как веб-сервис сам управляется с помощью операции соединения (который уже в прогресс).

Теперь я хочу, чтобы операция соединения заканчивалась только после того, как эта реакция срабатывала NSOperation.

Reference, откуда я взял код:

https://developer.apple.com/sample-code/wwdc/2015/

Пример кода: Расширенный NSOperations

Примечание:

  1. Один из вариантов заключается в том, что я могу непрестанно добавить это NSOperation как зависимость и завершение вызова, если этот ответ отсутствует в ответе. Но все же, я хочу сказать, что я не хочу вообще ссылаться на эту операцию, если я не получу этот ответ.

  2. Другой вариант заключается в том, что эта операция подключения ожидает завершения этой операции, а затем вызывает завершение() этого отклика NSOperation (это косвенный способ достижения решения).

  3. Причина, по которой я пытаюсь выполнить ее во время выполнения, заключается в том, что я хочу, чтобы этот модуль включал в себя этот NSOperation, который можно подключить к моему проекту. Когда мне не нужен модуль, я удаляю файлы и не должен влиять на систему.

Просто хотел знать, если кто-то столкнулся с одним и тем же сценарием.

+0

Вы можете создать NSBlockOperation - это в основном блок, обернутый вокруг NSOperation, также существует NSInvocationOperation. Конечно, они поддерживают зависимости. – Andrea

ответ

0

Вы не можете прикреплять зависимости к запуску NSOperations, и даже если бы это было возможно, это не сильно повлияло. Зависимости предотвращают запуск NSOperation до тех пор, пока все они не будут завершены, после того, как операция уже запущена, им не остается смысла.

Извините, но я не понимаю ваш случай использования. Не могли бы вы пояснить, что такое «операция подключения»? Кроме того, что бы вы ожидали увидеть при подключении к нему новой зависимости? Если он перестанет работать?

+0

Он не должен останавливаться. Предполагается дождаться завершения следующей операции, которая была создана на основе ответа веб-службы. Операция подключения, как говорится, - это операция, используемая для подключения к веб-службе (в идеале это соединение с URL-адресом, за которым следует анализ, зависящий от работы сети). Я знаю, добавляется ли зависимость, операция будет ждать до начала зависимостей. Мне просто интересно, есть ли какая-то работа, которая может заставить запущенную операцию ждать, если зависимости будут добавлены во время выполнения. –