NSNotificationCenter может привести к ошибкам.Знаете ли вы более элегантные решения?

StackOverflow https://stackoverflow.com/questions/9331675

  •  27-10-2019
  •  | 
  •  

Вопрос

Я могу добавить наблюдателя дважды (случайно) в центр уведомлений, и я буду получать уведомления дважды. Можно ли получить только одно уведомление?Знаете ли вы более элегантные решения?

Я показываю вам этот пример, потому что это может привести к ошибкам.

родовое слово
Это было полезно?

Решение

Если вы не уверены, добавили ли вы наблюдателя где-то еще, вы можете использовать следующий код каждый раз, когда добавляете наблюдателя

родовое слово

Таким образом вы удаляете старый (если он существовал) и добавляете новый.

Это не 100% отказоустойчивость, но это начало.Это может привести к сбою в многопоточных приложениях, где вызовы выполняются асинхронно, или в других уникальных ситуациях.

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

Вы также можете установить для объекта значение nil, а затем использовать этот объект, как если бы он был еще действителен.

Не все можно сделать отказоустойчивым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top