通知中使用的 none 案例在哪里?
Posted
技术标签:
【中文标题】通知中使用的 none 案例在哪里?【英文标题】:where is the none case used in notifications? 【发布时间】:2017-03-06 16:38:53 【问题描述】:let types: UIUserNotificationType = [.alert, .sound, .badge, .none]
let settings = UIUserNotificationSettings(forTypes: types, categories: nil)
application.registerUserNotificationSettings(settings)
或this代码:
guard let settings = UIApplication.sharedApplication().currentUserNotificationSettings() where settings.types != .None else
不知道如何理解它,显然如果你注册它,那么你会在你的 settings 类型中拥有它...
我已经阅读了here 和here,但无法弄清楚。也找不到关于它的文档。虽然,当我命令 + 单击它时说:
收到通知后,应用程序可能不会显示任何 UI
它是否用于表示一旦收到通知,用户就不能做任何事情?那是我们应该注册的东西吗?如果我们不为此注册会出现什么问题?
【问题讨论】:
【参考方案1】:.none
只是零选项——既不是.alert
,也不是.sound
,也不是.badge
。与其说是没有任何选择,不如说是一种选择。
您显然不需要为.none
编写代码注册。但是用户可能在设置中配置这样的东西,完全关闭通知显示警报、添加徽章或播放声音的能力,你需要一种方法告诉这个并检查它。
注意,顺便说一句,.none
(零选项)在 Swift 3 中不是按名称导入的;它仅对应于空集[]
。 (无论如何 UIUserNotificationType 在 ios 10 中已被弃用。)
【讨论】:
我刚刚对问题进行了编辑,我已经看到这样的代码,所以你的意思是在你的设置/类型中包含.none
是没有意义的?根据this 的评论,它似乎有一个注册价值
不,我认为第一个谈论.none
的代码很愚蠢。它对运行时的行为没有任何影响。这种白痴正是为什么零选项的名称被删除的原因。
这是另一种看待它的方式。这是一套。 .none
是空集。还记得你的高中数学吗?空集是每个集合的子集。此外,任何集合与空集的并集是原始集合。因此,没有理由像第一个示例中那样明确指定 .none
,因为它不会对集合的规范添加任何内容。
我明白了......所以我的问题中的第二个 sn-p 基本上是“你需要一种方法来被告知并检查它。”以上是关于通知中使用的 none 案例在哪里?的主要内容,如果未能解决你的问题,请参考以下文章