1

У меня есть немного UIViewController's подкласс. Каждый класс имеет сетевые вызовы, все эти сетевые вызовы обрабатываются в отдельном классе, всякий раз, когда я получаю отказ в качестве ответа вместо ответа на отказ службы доставки для каждого класса, я хочу показать предупреждение, отправив уведомление из моего сетевого класса. Все мои предупреждения отображаются с расширением до UIViewController. Есть ли способ добавить наблюдателя для уведомления в моем расширении, чтобы я мог отправлять уведомления из моего сетевого класса, и предупреждение появляется с использованием этого расширения UIViewController's вместо добавления/удаления наблюдателя в каждом из моих UIViewController.Обработка NSNotification в нескольких UIViewContoller в Swift

+0

просто не отправляйте уведомление при возникновении сбоя и покажите предупреждение из своего сетевого класса? – Fonix

+0

Я просто не хочу получать оповещение в своих классах Model/Network. – Ash

ответ

0
  1. Если вы намереваетесь просто сообщить об ошибке, тогда я бы порекомендовал добавить AppDelegate в качестве прослушивателя уведомлений, а затем представить предупреждение об уведомлении.
  2. Я лично рекомендовал бы блокировку завершения для сетей , делая код масштабируемым и отлаживающим.
  3. Существует еще одна альтернатива создания подкласса UIViewController (например, CustomVC) и регистрации его для уведомления с помощью пустого обработчика . А затем создайте все подклассы контроллеров вида CustomVC. Тем не менее, каждый из ваших контроллеров просмотров должен будет реализовать обработчик и выполнить код на основе конкретного VC.
+0

У меня есть мои классы, которые унаследованы от UITableViewController, а также UIViewController. Мне нужно подклассифицировать многие из моих классов, которые нуждаются в изменении кода. Я не предпочитаю делать это на заключительном этапе. Могу ли я что-либо сделать с помощью моего существующего расширения UIViewController? – Ash

+0

Я перечислил все варианты, насколько мне известно. Если у вас есть разные типы VC, тогда я бы посоветовал № 1 и № 2 моих вышеупомянутых предложений. – Abhinav

0

Если вы хотите только показать предупреждение, вы можете сделать это, отобразив его из своего сетевого класса вместо уведомления.

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