通知中使用的 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 案例在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

在哪里只更新一次通知小部件的 UI

使用 GCM ios 9 时我应该在哪里处理推送通知

(node.js) Windows 8 toast 通知中的次要图像来自哪里?

推送通知,它们在哪里?

手机通知栏在哪里设置 手机通知栏怎么设置

Apple iOS 应用内购买服务器到服务器通知的“取消”通知案例?