gpt4 book ai didi

ios - swift,为 ios 7 和 8 编写代码

转载 作者:IT王子 更新时间:2023-10-29 05:16:08 25 4
gpt4 key购买 nike

我有一个正在用 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 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 符号,但我该如何解决这个问题?

最佳答案

不幸的是,我认为您遇到了当前限制,请参阅此

What is the Swift preprocessor equivalent to iOS version check comparison?

解决这个问题的唯一方法是添加一个 Objective-C 文件,然后使用 #if 宏并制作两个您从 Swift 调用的辅助函数(一个用于 iOS8,一个用于 iOS7 ).我希望这会在某个时候得到解决。

关于ios - swift,为 ios 7 和 8 编写代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24256583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com