问题标签 [swift4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 在 Swift 4 模式下使用 Swift 3 @objc 推理已被弃用?
简而言之,在使用 Xcode 9 Beta 时,我遇到了以下警告:
不推荐在 Swift 4 模式下使用 Swift 3 @objc 推理。请解决已弃用的@objc 推理警告,在启用“使用已弃用的 Swift 3 @objc 推理”日志记录的情况下测试您的代码,并禁用 Swift 3 @objc 推理。**
经过一番研究,我仍然不知道如何解决这个问题。我将非常感谢有关如何解决此问题的任何提示以及对正在发生的事情的解释。
我的目标是更好地理解我的代码发生了什么。
ios - 如何在 Xcode 9 上构建 Swift 3 项目?
Xcode 9 Release Notes说支持 Swift 3 编译:
Swift 4 和 Swift 3、Swift 4 和 Swift 3 目标的一个编译器可以在同一个项目中一起编译。
我已经安装了 Xcode 9 测试版。但是当我按下 Build 时,它显示了一堆错误。在 Xcode 9 中使用 Swift 3 时需要做一些特殊的准备工作吗?
升级版:
使用 Swift 3.1 编译的模块无法在 Swift 4.0 中导入
swift - 如何在 Swift 4 中使用 #selector() 处理 @objc 推理弃用?
我正在尝试将项目的源代码从 Swift 3 转换为 Swift 4。Xcode 给我的一个警告是关于我的选择器。
例如,我使用这样的常规选择器将目标添加到按钮:
这是它显示的警告:
'#selector' 的参数指的是 'ViewController' 中的实例方法 'myAction()',它依赖于 Swift 4 中已弃用的 '@objc' 属性推断
添加“@objc”以将此实例方法公开给 Objective-C
现在,点击Fix
错误消息会对我的函数执行以下操作:
我真的不想重命名我的所有函数以包含该@objc
标记,并且我认为这不是必需的。
如何重写选择器来处理弃用?
相关问题:
ios - 无法将 NSAttributedString.DocumentAttributeKey 类型的值转换为 .DocumentReadingOptionKey
我在 SO 的某处发现了这个字符串扩展,它允许我将 html 代码转换为属性字符串:
它在 Swift 3 中运行良好,但在 Swift 4 中,Xcode 抱怨:
无法将类型“NSAttributedString.DocumentAttributeKey”的值转换为预期的字典键类型“NSAttributedString.DocumentReadingOptionKey”
我该如何解决?
json - 如何在 Swift 4 的可解码协议中使用自定义键?
Decodable
Swift 4 通过协议引入了对原生 JSON 编码和解码的支持。我如何为此使用自定义键?
例如,假设我有一个结构
我可以将其编码为 JSON。
我可以将它编码回一个对象。
但是如果我有一个 json 对象
我将如何告诉该Address
地图zip_code
上的解码器zip
?我相信您使用新CodingKey
协议,但我不知道如何使用它。
swift - 如何将 NSWorkspace 通知迁移到 Swift 4?
在 Swift 3 中,我使用以下代码注册了睡眠和唤醒通知:
但是在迁移到 Swift 4 后,我在应用建议的修复程序后收到此错误:
我如何在 Swift 4 中做到这一点?
swift - 从 Swift 2.x 到 Swift 4 的代码迁移
我们有足够大的项目,它是用 Swift 2.x 构建的,现在 Apple 刚刚发布了 Swift 4,因此我们可以选择最新版本的 Swift...
我们需要先将代码迁移到 Swift 3 吗?或者我们可以使用 Xcode 9 直接将我们的代码迁移到 Swift 4?