问题标签 [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.
ios - 如何修复方法'initialize()'定义了Objective-C类方法'initialize',这是Swift 4中不允许的?
我正在将我的应用程序从 Swift 3 更新到 Swift 4,迁移后出现一些错误。其中之一Method 'initialize()' defines Objective-C class method 'initialize', which is not permitted by Swift
在 IQToolbar 中IQKeyboardManager
,如何解决这个问题?
ios - 如何保存实现 Codable 的自定义对象
现在,使用 Swift 4 可以更轻松地在JSON 或 Properties list之间进行编码/解码。
但是我找不到如何使用 Codable 编码到数据,而不使用 Objective-C 方法initWithCoder
和encodeWithCoder
.
考虑这个简单的类:
如何使用CodingKeys
and not initWithCoder
and将其编码为 Data encodeWithCoder
?
编辑:我还需要能够使用 NSKeyedArchiver 反序列化以前保存在 userdefaults 中的对象。
swift - 在 Swift 4 中使用 @objc 推理
我收到此警告:
'#selector' 的参数指的是 'CustomTableViewController' 中的实例方法 'customButtonDidTouch()',它依赖于 Swift 4 中已弃用的 '@objc' 属性推断
Xcode 建议添加@objc
到我的customButtonDidTouch()
方法中,但这样做会产生另一个警告:
不推荐在 Swift 4 模式下使用 Swift 3 @objc 推理。请解决已弃用的@objc 推理警告,在启用“使用已弃用的 Swift 3 @objc 推理”日志记录的情况下测试您的代码,并禁用 Swift 3 @objc 推理。
有什么建议么?
swift - 可编码协议一致性
我想实现一个符合的容器类型Codable
,但遇到了一些问题。我想通用化我的容器以容纳任何可编码和可解码的元素。最初,我有这个:
...但是更改了它,以便我可以拥有某种类型的安全性。有人可以解释这里到底发生了什么吗?
我的代码
编译器输出
ios - 我可以使用 Xcode 8.3.2 将 Swift 4 编写的代码提交到 App Store 吗?
我想在开发中使用 Xcode 9 测试版,但我似乎无法在 Xcode 9 中获得使用 Swift 3.2 的正确设置。编辑器比 Xcode 8.3.2 快得多
我可以(并且已经)从 swift.org下载了Swift 4 工具链,并且可以在 Xcode 8.3 和 Xcode 9 beta 中使用它。如果我想在 Xcode 9 正式发布之前发布我的应用程序,我可以用 Swift 4 编写它,然后使用 Swift 4 工具链通过 Xcode 8.3 将它提交到 App Store 吗?
ios - Xcode 9 和 Swift 4 - 呈现视图控制器时意外崩溃
我只有在使用 Xcode 9 Beta 1 和 Swift 4 时才会崩溃。我试图呈现一个视图控制器,但抛出了一个异常,即使我有几个断点来捕获所有异常 Xcode 不会在任何地方停止。
使用 lldb 我能够打印异常,因为 Xcode 没有这样做。这是我得到的:
这是堆栈跟踪:
和回溯:
我知道它与无法识别的选择器有关,但我没有对UIDeviceRGBColor
or做任何事情PointSize
。
不太确定会发生什么,当我切换到 Xcode 8 时,这一切都很好。
如果您想复制,请随时在此处克隆项目并切换到features/ios11
分支。您所要做的就是完成介绍屏幕,然后单击+
按钮。崩溃将在之后立即发生。使用Xcode 9 Beta 1运行
我知道这可能只是一个 beta 错误,但如果有人对此有更多经验,我将不胜感激,如果没有,至少可以帮助我如何提交 Xcode 错误报告,因为我从未做过。
谢谢!
sirikit - INCreateNoteIntent groupName 始终为空
使用 Sirikit 创建便笺时,我可以解析标题和内容,但不能解析 groupName。Siri 理解文件夹名称,但 po intent 始终返回 groupName = ""。
这只发生在模拟器中。在设备上,它不会询问文件夹名称,也不会在断点处停止。不能在设备上调试 siri 扩展吗?
好像句子有问题。如果我将此 siri 查询直接放在模式中,它正在模拟器中工作,并且我在日志中看到正确的组名“f”:
但如果我替换 f 或 s,则不会。句子有错误吗?我在哪里可以找到正确句子的例子?
我从 WWDC 演示文稿中获取了这个:
swift - 如何从 Swift 4 降级到 Swift 3?
我刚刚将我的代码从 Swift 3 升级到 Swift 4。后来,我改变了主意,想在 iOS 10 上使用我的代码。然后我得到了这个错误:
需要为使用 Swift 的目标正确配置“Swift 语言版本”(SWIFT_VERSION)。使用 [Edit > Convert > To Current Swift Syntax...] 菜单选择 Swift 版本或使用 Build Settings 编辑器直接配置构建设置。
我使用 [Edit > Convert > To Current Swift Syntax...] 菜单来选择一个 Swift 版本,但它说
'没有过滤结果'。
然后,我尝试使用构建设置并将“SWIFT_VERSION”从 4.0 更改为 3.1 和 3.0。但是,错误仍然存在。有谁知道解决这个问题?提前致谢!