Реализация открытого исходного кода Apple Combine Framework для обработки значений с течением времени.
Основная цель этого проекта - обеспечить совместимую, надежную и эффективную реализацию, которая может использоваться в операционных системах Apple до MacOS 10.15 и iOS 13, а также Linux, Windows и Webassembly.
| Статус CI |
|---|
OpenCombine содержит три публичных целевых показателя: OpenCombine , OpenCombineFoundation и OpenCombineDispatch (четвертый, COpenCombineHelpers , считается частным. Не импортируйте его в своих проектах).
Сам OpenCombine не имеет никаких зависимостей. Даже не фундамент или отправка. Если вы хотите использовать Opencombine с диспетчерской (например, для использования DispatchQueue в качестве Scheduler для операторов, таких как debounce , receive(on:) и т. Д.), Вам необходимо будет импортировать как OpenCombine , так и OpenCombineDispatch . То же самое относится и к фундаменту: если вы хотите использовать, например, издатели NotificationCenter или URLSession , вам также необходимо импортировать OpenCombineFoundation .
Если вы разрабатываете код для нескольких платформ, вы можете вместо этого импортировать модуль OpenCombineShim . Он условно реэкспортируется на платформах Apple (если таковые имеются) и все модули Opencombine на других платформах. Вы можете импортировать OpenCombineShim только при использовании Swiftpm. В настоящее время он не доступен для кокопод.
Чтобы добавить OpenCombine в свой пакет Swiftpm, добавьте пакет OpenCombine в список пакетов и целевых зависимостей в вашем Package.swift . Продукты OpenCombineDispatch и OpenCombineFoundation в настоящее время не поддерживаются на Webassembly. Если ваш проект предназначен исключительно для Webassembly, вы должны опустить их из списка ваших зависимостей. Если он нацелен на несколько платформ, включая Webassembly, зависят от них только на платформах, не связанных с ваговой, с условными целевыми зависимостями.
dependencies: [
. package ( url : " https://github.com/OpenCombine/OpenCombine.git " , from : " 0.14.0 " )
] ,
targets: [
. target (
name : " MyAwesomePackage " ,
dependencies : [
" OpenCombine " ,
. product ( name : " OpenCombineFoundation " , package : " OpenCombine " ) ,
. product ( name : " OpenCombineDispatch " , package : " OpenCombine " )
]
) ,
] OpenCombine также может быть добавлен в качестве зависимости Swiftpm непосредственно в вашем проекте Xcode (требуется Xcode 11 вверх) .
Для этого откройте Xcode, используйте файл → Swift Packages → «Добавить зависимость пакета…» , введите URL -адрес репозитория, выберите последнюю доступную версию и активируйте флажки:

Чтобы добавить OpenCombine в проект с использованием кокопод, добавьте OpenCombine и OpenCombineDispatch в список целевых зависимостей в вашем Podfile .
pod 'OpenCombine' , '~> 0.14.0'
pod 'OpenCombineDispatch' , '~> 0.14.0'
pod 'OpenCombineFoundation' , '~> 0.14.0' Файл opencombine_lldb.py определяет некоторые резюме типа lldb для облегчения отладки. Сводки этих типов улучшают способ отображения lldb и Xcode некоторых значений Opencombine.
Чтобы использовать opencombine_lldb.py , выясните его полный путь. Допустим, полный путь ~/projects/OpenCombine/opencombine_lldb.py . Затем следующее оператор в вашем файле ~/.lldbinit :
command script import ~/projects/OpenCombine/opencombine_lldb.py
В настоящее время opencombine_lldb.py определяет резюме типа для этих типов:
Subscribers.DemandСм. Appling.md.