问题标签 [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.

0 投票
1 回答
6738 浏览

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,如何解决这个问题?

0 投票
4 回答
9268 浏览

ios - 如何保存实现 Codable 的自定义对象

现在,使用 Swift 4 可以更轻松地在JSON 或 Properties list之间进行编码/解码。

但是我找不到如何使用 Codable 编码到数据,而不使用 Objective-C 方法initWithCoderencodeWithCoder.

考虑这个简单的类:

如何使用CodingKeysand not initWithCoderand将其编码为 Data encodeWithCoder

编辑:我还需要能够使用 NSKeyedArchiver 反序列化以前保存在 userdefaults 中的对象。

0 投票
2 回答
1055 浏览

swift - 为什么我无法从 Firebase 数据库和存储中删除数据?

我正在使用下面的代码将照片和数据上传到 firebase。

我使用一个按钮和下面的代码来删除照片并从 Firebase 中删除数据。

该项目运行良好,但是当我触摸按钮删除帖子时,没有任何反应!

Api.MyPosts.REF_MYPOSTS.child(currentUserId).child(newPostId).removeValue()

这段代码没有任何问题,必须正常工作,那么问题出在哪里?

Xcode 模拟器

0 投票
0 回答
4263 浏览

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 推理。

有什么建议么?

0 投票
0 回答
92 浏览

swift - 可编码协议一致性

我想实现一个符合的容器类型Codable,但遇到了一些问题。我想通用化我的容器以容纳任何可编码和可解码的元素。最初,我有这个:

...但是更改了它,以便我可以拥有某种类型的安全性。有人可以解释这里到底发生了什么吗?

我的代码

编译器输出

0 投票
1 回答
1261 浏览

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 吗?

0 投票
1 回答
301 浏览

ios11 - 避免 xCode 9 中的三引号自动完成

按下空格键后的字符时如何避免xCode中的自动完成三引号'''或三重双引号。"""

在我的开发风格中,多行字符串的使用少于简单字符串,因此我更喜欢硬输入三重字符。

  • 键盘:U.S. International - PC
  • xcode版本:9.0 beta (9M136h)
  • 插图:

在此处输入图像描述

0 投票
2 回答
1747 浏览

ios - Xcode 9 和 Swift 4 - 呈现视图控制器时意外崩溃

我只有在使用 Xcode 9 Beta 1 和 Swift 4 时才会崩溃。我试图呈现一个视图控制器,但抛出了一个异常,即使我有几个断点来捕获所有异常 Xcode 不会在任何地方停止。

使用 lldb 我能够打印异常,因为 Xcode 没有这样做。这是我得到的:

这是堆栈跟踪:

在此处输入图像描述

和回溯:

我知道它与无法识别的选择器有关,但我没有对UIDeviceRGBColoror做任何事情PointSize

不太确定会发生什么,当我切换到 Xcode 8 时,这一切都很好。

如果您想复制,请随时在此处克隆项目并切换到features/ios11分支。您所要做的就是完成介绍屏幕,然后单击+按钮。崩溃将在之后立即发生。使用Xcode 9 Beta 1运行

我知道这可能只是一个 beta 错误,但如果有人对此有更多经验,我将不胜感激,如果没有,至少可以帮助我如何提交 Xcode 错误报告,因为我从未做过。

谢谢!

0 投票
1 回答
267 浏览

sirikit - INCreateNoteIntent groupName 始终为空

使用 Sirikit 创建便笺时,我可以解析标题和内容,但不能解析 groupName。Siri 理解文件夹名称,但 po intent 始终返回 groupName = ""。

这只发生在模拟器中。在设备上,它不会询问文件夹名称,也不会在断点处停止。不能在设备上调试 siri 扩展吗?

好像句子有问题。如果我将此 siri 查询直接放在模式中,它正在模拟器中工作,并且我在日志中看到正确的组名“f”:

但如果我替换 f 或 s,则不会。句子有错误吗?我在哪里可以找到正确句子的例子?

我从 WWDC 演示文稿中获取了这个:

0 投票
1 回答
8144 浏览

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。但是,错误仍然存​​在。有谁知道解决这个问题?提前致谢!