我正在使用Swift。我正在尝试询问用户的权限。
我使用此代码询问用户权限:
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge, categories: nil))
此代码在iOS8模拟器上运行良好
但是当我尝试使用iOS7在iPad 2上构建和运行我的应用程序时,我的应用程序正在崩溃并显示消息
dyld:未找到符号:_OBJC_CLASS _ $ _ UIUserNotificationSettings 参考自:/var/mobile/Applications/07D5D4BE-E6A3-43EE-ABEB-E9A1E4658F75/MyFirstApp.app/MyFirstApp预期在:/System/Library/Frameworks/UIKit.framework/UIKit 在/var/mobile/Applications/07D5D4BE-E6A3-43EE-ABEB-E9A1E4658F75/MyFirstApp.app/MyFirstApp (lldb)
要在Obj-C中询问用户权限,我们使用
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound];
但在swift中,application
对象没有名为registerForRemoteNotificationTypes
有什么想法吗?请帮忙。
答案 0 :(得分:3)
UIUserNotificationSettings
仅适用于iOS 8。所以你必须做这样的事情:
if NSClassFromString("UIUserNotificationSettings") != nil {
// Do the things in iOS 8 way.
} else {
// Do the things in iOS 7 way.
}
以上代码曾经在iOS 7上崩溃,但他的问题应该在Beta6中修复。