SwiftUi | Создайте сообщение об ошибке в модели или классе, которое доступно во всех представлениях

Я хочу создать универсальную утилиту api, которую я могу реализовать в любой модели. Поэтому в настоящее время я сталкиваюсь с проблемой вывода сообщений об ошибках из модели независимо от вида. Сообщения об ошибках необходимы для запуска уведомления «нет интернета» или «плохое интернет-соединение».

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

Вот мой код на данный момент:

func execute(requestBody: [String: Any], withCompletion completion: @escaping (Data?, Int) -> Void) {
    
    if !CheckApiReachability().getIsApiReachable() {
        //trigger error message here
    }

Добро пожаловать в SO - пожалуйста, возьмите тур и прочтите Как спросить, чтобы улучшить, отредактировать и отформатировать свои вопросы. SO - это не сервис написания кода, это может быть реализовано несколькими способами. Предоставьте Минимальный воспроизводимый пример кода, который вы пытаетесь выполнить, и мы поможем вам решить проблемы.

lorem ipsum 31.03.2021 11:34

В общем, отслеживание достижимости не рекомендуется. Сеть может выйти из строя в любой момент. Тот факт, что он был доступен за долю секунды до того, как вы сделали сетевой запрос, не означает, что запрос не может завершиться ошибкой из-за сетевой проблемы. Вы должны попробовать запрос и обрабатывать ошибки по мере их возникновения. Вы можете использовать Notification для «широковещательной трансляции» событий по всему приложению, а поскольку вы пометили SwiftUI, вы можете использовать Combine для подписки на это уведомление.

Paulw11 31.03.2021 12:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Теперь я использовал Центр уведомлений для реализации события, которое запускает предупреждение в моем представлении содержимого.

Отправить / опубликовать уведомление:

let nc = NotificationCenter.default 

self.nc.post(name: Notification.Name("InternetConnectionErrorAppeared"), object: nil)

Получать / подписываться / прослушивать отправленное событие и запускать что-нибудь:

.onReceive(nc.publisher(for: Notification.Name("InternetConnectionErrorAppeared"))) { output in
        print("-- Api call failed triggered status code event")
}

Другие вопросы по теме