Включил ли кто-нибудь Futures в Objective-C? Я (надеюсь, не наивно) полагаю, что должно быть достаточно просто обернуть NSInvocations в хороший API?Фьючерсы на цель-C?
ответ
Майк Ash реализовал фьючерсы с использованием блоков:
документация Apple, на blocks in Grand Central Dispatch может представлять интерес.
ссылка не работает. –
MPWFoundation имеет фьючерсы на основе Higher Order Messaging:
Предполагая, что у вас есть регулярные вычисления с сообщением computeResult
:
result = [someObject computeResult];
префиксов, что сообщение с future
сообщение будет вычислить результат в фоновом режиме:
result = [[someObject future] computeResult];
Объект в result
является прокси-сервером, который будет блокировать, когда сообщения отправляются на него до получения значения.
PromiseKit кажется довольно популярным. Там моя Collapsing Futures библиотека. Также есть RXPromise. И еще много.
Некоторые заметки между этими тремя:
- PromiseKit имеет Swift поддержки:
- Каждый из них может быть установлен с помощью CocoaPods.
- Каждый из них автоматически выравнивает значения в два раза в будущем в значениях однократно.
- Каждый из них является потокобезопасным.
- RXPromise и PromiseKit действуют как Promises/A + с JavaScript.
- Они отличаются тем, как управляются фьючерсы. В сворачивающихся фьючерсах есть FutureSource, у которого есть будущее, а не будущее. В RXPromise и PromiseKit будущее - это собственный источник.
- Они отличаются тем, как будущее отменяется. В RXPromise потребитель звонит
cancel
о самом будущем. В сворачивающихся фьючерсах производитель cancels a token дал метод, который сделал будущее. Я не знаю, что делает PromiseKit. - Все имеют отличную документацию по каждому методу.
Я склонен к свертыванию фьючерсов, поскольку я написал его и так четко предпочитаю проектные решения, которые он принял. Я считаю, что контроль над контролем является очень важным, поскольку он помогает предотвратить самоподдерживающиеся эталонные циклы (не проблема в JS, но определенно проблема в Obj-C при работе с блоками). Я также думаю, что отменять токены просто упростить. С другой стороны, действовать как хорошо известная спецификация с известного языка было бы очень приятно.
_Cancellation_ - чрезвычайно важная особенность реализации Future, хотя «Promises/A + Spec» не предлагает ее в своем основном API. «Collapsing Futures» имеет хорошо спроектированные средства для отмены, а также RXPromise - это просто не «явный»: отправка «отменить» в первый раз означает, что отправитель отказывается от своего интереса к будущему. Если это обещание root, основная задача * может * переслать это событие отмены, просто зарегистрировав обработчик и затем отменив его. Есть также средства, что задача будет отменена, когда потребителей больше нет. – CouchDeveloper
- 1. iphone цельC alloc/release вопрос
- 2. Фьючерсы на nHibernate Linq
- 3. Как связать фьючерсы на Guava?
- 4. Все фьючерсы на Scala завершены
- 5. Исторический контракт на фьючерсы на R
- 6. Scala фьючерсы и потоки
- 7. Объединяя функции, возвращающие фьючерсы
- 8. Scala - фьючерсы не работают
- 9. Фьючерсы после [10000] миллисекунд
- 10. Как обработать сбойные фьючерсы
- 11. Производятся ли фьючерсы на одном потоке? (Scala)
- 12. цепных фьючерсы с цикл, содержащие не только фьючерсы
- 13. Play цепи фьючерсы
- 14. JModelica и параллельные фьючерсы
- 15. Scala, восстановить вложенные фьючерсы?
- 16. Фьючерсы, полученные из коллекции
- 17. слагающих фьючерсы и опционы
- 18. «Свести» вложенные фьючерсы
- 19. Scala - Фьючерсы и Eithers
- 20. Фьючерсы в Haskell
- 21. Вложенные фьючерсы не выполняются
- 22. Реализация Темы через фьючерсы
- 23. Лучший способ накопить фьючерсы
- 24. Фьючерсы в Scala.js
- 25. Scala - фьючерсы и параллелизм
- 26. фьючерсы, обещания и исключения
- 27. Java-фьючерсы - нетерпеливое исполнение?
- 28. Нужна помощь в понимании методов и исключений [цельC]
- 29. СЦЕПЛЕНИЕ фьючерсы и опционы идиоматически
- 30. Товарные фьючерсы Иерархическая структура данных
http: // mobisoftinfotech.com/tutorials/essential-swift/essential-swift-for-objective-c-programmingers.html –