где в уведомлениях используется регистр none?

let types: UIUserNotificationType = [.alert, .sound, .badge, .none]
let settings = UIUserNotificationSettings(forTypes: types, categories: nil)
application.registerUserNotificationSettings(settings)

или этот код:

guard let settings = UIApplication.sharedApplication().currentUserNotificationSettings() where settings.types != .None else {}

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

Я прочитал здесь и здесь, но не могу понять. Документации на него тоже не нашел. Хотя, когда я нажимаю Command + Click, он говорит:

приложение может не отображать какой-либо пользовательский интерфейс при получении уведомления

Используется ли он для обозначения того, что после получения уведомления пользователь ничего не может сделать? Как это то, на что мы должны зарегистрироваться?! Что может пойти не так, если мы не зарегистрируемся для этого?




Ответы (1)


.none — это просто нулевой вариант — ни .alert, ни .sound, ни .badge. Это не столько вариант, сколько отсутствие любого из вариантов.

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

Кстати, обратите внимание, что .none (нулевой вариант) не импортируется по имени в Swift 3; он соответствует просто пустому множеству []. (И в любом случае UIUserNotificationType устарел в iOS 10.)

person matt    schedule 06.03.2017
comment
Я только что отредактировал вопрос, я видел такой код, так что вы имеете в виду, что бессмысленно включать .none в ваши настройки/типы? И на основе этого комментария кажется иметь значение для регистрации - person Honey; 06.03.2017
comment
Нет, я думаю, что первый код, который говорит о .none, просто глуп. Это никак не влияет на поведение среды выполнения. Именно из-за такого идиотизма название нулевой опции было стерто. - person matt; 06.03.2017
comment
Вот еще один способ взглянуть на это. Это набор. .none - это пустой набор. Помните школьную математику? Пустое множество является подмножеством каждого множества. Более того, объединение любого множества с пустым множеством является исходным множеством. Следовательно, нет причин явно указывать .none, как в первом примере, так как это ничего не добавляет к спецификации набора. - person matt; 06.03.2017
comment
Ясно... Итак, второй фрагмент в моем вопросе, в основном, заключается в том, как вам нужен способ сообщить об этом и проверить это. - person Honey; 06.03.2017