我正在使用Swift编写一个测试应用程序,我想要面向iOS 7。但是为了启用本地通知,我需要添加
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound
| UIUserNotificationType.Alert
| UIUserNotificationType.Badge,
categories: nil))
但是这个调用在iOS 7中不可用,所以我添加了
var version:NSString = UIDevice.currentDevice().systemVersion as NSString;
if version.doubleValue >= 8 {
// ios 8 code
}
这段代码只在iOS 8及以上版本中运行(已测试),但在iOS 7中运行应用程序时仍会出现以下错误:
dyld: Symbol not found: _OBJC_CLASS_$_UIUserNotificationSettings Referenced from: /var/mobile/Applications/AC73969D-1A4C-45AC-99CA-0B3982C1EE36/Timely.app/Timely Expected in: /System/Library/Frameworks/UIKit.framework/UIKit in /var/mobile/Applications/AC73969D-1A4C-45AC-99CA-0B3982C1EE36/Timely.app/Timely
我认为这是因为二进制文件包含了在iOS 7中不存在的API符号,但我该如何解决这个问题?
dyld
将所有内容链接在一起时,它会发现许多iOS8特有的东西无法理解。 - Ephemera