This question already has answers here:
swift, write code for ios 7 and 8
(5个答案)
6年前关闭。
我正在使用Swift。我正在尝试向用户请求权限。
我正在使用以下代码询问用户权限:
这段代码在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中请求用户权限,我们使用
但很快
有任何想法吗?请帮忙。
上面的代码曾经在iOS 7上崩溃,但是他的问题应该在Beta6中修复。
(5个答案)
6年前关闭。
我正在使用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];
但很快
application
对象没有名为registerForRemoteNotificationTypes
的方法有任何想法吗?请帮忙。
最佳答案
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中修复。
关于ios - dyld:找不到符号:尝试在iOS7上运行时,_OBJC_CLASS _ $ _ UIUserNotificationSettings,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25461654/
10-14 03:16