Есть ли способ поделиться глобальными переменными между Struct & Class? @ Окружающая среда не работает - PullRequest
0 голосов
/ 12 января 2020

Сценарий:

У меня есть приложение на основе вкладок с параллельными сетевыми процедурами аналогичной функции.

enter image description here

Каждый имеет свой собственный обработчик сетевых ошибок, который отправляет флаг оповещения @Published для уведомления оператора оповещения вызывающего хоста об отображении соответствующего оповещения.

В этом случае у меня появляется предупреждение «Нет Inte rnet».

Проблема:

Хорошо иметь только одну (1) подпрограмму с ошибками в сети ... но при наличии подпрограмм с несколькими сетями возникает множество сетевых ошибок, которые либо:

  1. Требуется несколько операторов .alert (по одному на каждую сетевую подпрограмму с вкладками) или
  2. Используйте один оператор .alert для всех.

Вариант # 1 плох, потому что все .alerts будут конфликтовать друг с другом на одном и том же хосте. Это оставляет вариант № 2.

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

Эти предупреждения отправляются параллельно ' наблюдаемым классам ', каждый из которых содержит свои логики обработки сети c (издатель), из которых хост может собирать свои соответствующие сообщения предупреждений через @ Observed ВАРС.

Однако каждый параллельный класс НЕ МОЖЕТ получить доступ к среде @ для совместного использования глобального свойства, которое будет совместно использоваться в ОДНОМ единственном свойстве .alert () структуры хоста.

Это моя проблема.

Примечание: это просто обучающее приложение для моделирования различных сетевых сценариев; и как обработать свои соответствующие данные субъективно . ... Я мог бы упростить это, просто проверив сеть ОДИН РАЗ против каждой подпрограммы с вкладками.

Вопрос: Как можно, чтобы различные классы совместно использовали global var (флаг bool и сообщение String), сгенерированный классом против структуры?

Нужен ли мне класс синглтон и как он будет включен в принимающую структуру?

У меня есть два мира: класс и стойка, которые могут понадобиться для обмена глобальными данными.

...