在应用更新之间更改通知名称是否安全?

时间:2016-04-29 10:37:26

标签: ios swift

NSNotificationCenter的当前通知名称是常量,在全局可访问的单例中定义:

let notificationLeafletImageLongPressed = "com.mycompany.notificationLeafletImageLongPressed"
let notificationLeafletPageChanged = "com.mycompany.notificationLeafletPageChanged"

我想要做的是将其更改为:

enum NotificationKey: String {
    case LeafletImageLongPressed
    case LeafletPageChanged
}
// Access
print(NotificationKey.LeafletImageLongPressed.rawValue)

通过这种方式,我让编译器检查所​​有名称是否真的不同。

我现在有三个问题:

1)据我所知,通过App Store在设备上更新应用程序总是导致终止(因此重新启动)应用程序。对?

2)因此,应该保存以在更新之间更改NSNotificationCenter的通知名称。正确?

3)目前,名称是以反向dns样式(com.mycompany.notificationName)定义的,但之后它们只是notificationName。如果这一般可以吗?或者它应该总是反向dns风格? (然后我无法将其更改为枚举)

提前致谢。

1 个答案:

答案 0 :(得分:3)

1)是的,更新后,应用程序重新启动。

2)是的,它会保存对通知名称的更改,因为更改是在代码中而不是在某个持久容器中(Keychain,UserDefaults等)。

3)' notificationName' 看起来比' com.mycompany.notificationName' 好多了。虽然Apple在编码指南中建议使用更详细的名称。

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingIvarsAndTypes.html

  

通知由名称为的全局NSString对象标识   以这种方式组成:

     

[关联类的名称] + [Did |将] + [UniquePartOfName] +   通知例如:

     

则NSApplicationDidBecomeActiveNotification   NSWindowDidMiniaturizeNotification   NSTextViewDidChangeSelectionNotification   NSColorPanelColorDidChangeNotification