问题标签 [swift5]

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 投票
3 回答
1021 浏览

swift - 如何在 Swift 5 中检查字符串是否包含多个字符

我有一个失败初始化程序,它接受一个字符串,如果这个字符串包含不正确的字符(T、A、C、G)我想返回 nil:

我尝试过这样的事情,但不成功:

我不知何故被这两个contains电话弄糊涂了,所以我不确定我的检查是否正确。
任何帮助表示赞赏。

0 投票
2 回答
60 浏览

ios - 动态表视图高度

我在 UITableView 上实现了可扩展部分,现在我的问题是当 UIViewController 加载表格时,该部分下方有行。

未展开:

在此处输入图像描述

扩展:

在此处输入图像描述

如果该部分未展开,我希望UITableView没有行,因此我可以UIView在该部分下方设置另一个。当该部分被展开时,UIView应该消失并且表格视图将呈现在整个屏幕上。

0 投票
1 回答
61 浏览

protocols - 在 swift5 中初始化某些实例的奇怪结果?

我尝试在 Xcode10.2 中执行这些代码,将 Swift 版本配置为 Swift5,我希望获得 Person、Man 和 Women 的实例,但控制台结果是:

这让我很困惑,任何人都可以解释它。

期待你的回答,谢谢。

0 投票
3 回答
3503 浏览

swift - 如何在 swift 5/ Xcode 10.2 中的 Userdefaults 中保存自定义类的对象

我想将数组 PatientList 保存在 UserDefaults 中。Patient 是一个自定义类,所以我需要将它转移到 Data 对象中,但这在 Swift 5 上不像以前那样工作。

这就是函数的样子。问题出在我初始化 encodeData 的那一行。

这就是 Swift 的建议,但是当我这样尝试时,它总是崩溃并且我没有收到错误

0 投票
1 回答
66 浏览

nslayoutconstraint - 在 iOS 中以编程方式设置约束使按钮消失

我有这段代码,当我取消注释块时,按钮消失了,并且注释它是可见的。未注释时

评论时

我不知道为什么中心标签很好,但我的按钮搞砸了。

0 投票
0 回答
101 浏览

swift - 如何在 swift 5 中使用“Data.withUnsafeMutableBytes”

我将一个项目更新为 Swift 5,它使用以下代码在某处生成用于加密的密钥:

随着对 Swift 5 的更新,我收到以下警告:

但是我不知道如何实现它想要的东西,我发现这个建议充其量是模糊的,而且我尝试的任何东西要么无法编译,要么给出相同的警告。

这是完整的功能:

我尝试了各种写作方式,withUnsafeMutableBytes但都无济于事。Swift 5 中上述代码的合适替代方案是什么?

0 投票
3 回答
301 浏览

swift - 从 UICollectionView 将图像名称打印到控制台

我正在使用 UICollectionView,其中有一个带有 Tap Gesture Recognizer 的 UIImage 作为我的 CollectionView 的单元格模型。我还有 57 张不同名称的图像,我想根据我点击的图像打印到控制台。

这是我的代码:

然后我有另一个 swift 文件 (PhotoCell),其中有用于标签和 imageView 的 IBOutlets。

有什么方法可以做到这一点?

谢谢。

0 投票
1 回答
2061 浏览

ios - 警告:非特定平台“*”的“可用”属性中存在意外的版本号

我有这个片段代码:

由于我已经升级到swift5xcode 10.2 ,我收到以下警告:

非特定平台“*”的“可用”属性中存在意外的版本号

并固定:

将 ':3.0' 替换为 ''

这是什么警告?它说什么?

0 投票
1 回答
724 浏览

ios - INIntent `setImage` 使 Swift 5 中的运行时崩溃

自从添加了 Siri 快捷方式后,我就使用INIntent了对象。为此,我做了一个意图定义,它INIntent自动生成了一个对象。

为了自定义 Siri 快捷语音记录屏幕,我添加了一个便利初始化程序。基本上是添加suggestedInvocationPhrase顶部图标图像。

今天,我尝试将整个项目转换为 Swift 5,并且构建没有问题。(代码中没有实际的变化。)但是它在运行时崩溃并带有非常奇怪的消息。

线程 1:致命错误:无法解开关键路径类型XXXX9SpotConditionIntentCXD

它指出了setImage(inImage, forParameterNamed: \.spotName).

我刚刚发现setImage(,forParameterNamed)文档中不存在。

在此处输入图像描述

https://developer.apple.com/documentation/sirikit/inintent

好像我需要使用func keyImage() -> INImage?iOS 12 中添加的。

但我不知道为什么它在 Swift 4.X 中有效,并且找不到任何弃用文档。有人知道这个问题吗?

0 投票
1 回答
4362 浏览

ios - 使用 Swift 5.0 编译的模块不能被 Swift 4.2.1 编译器导入

与此类似的问题还有很多,但他们大多是在使用 cocoapods/carthage 的背景下谈论这个的。我没有使用任何一个,并且手动导入了我所有的框架。

我正在使用 Xcode 10.1。我只是将我的一个框架更新到他们的最新版本(我们需要一个仅在此版本上可用的功能),现在收到此错误消息。我也有 Xcode 10.2,但该项目已经在 Swift 4.2.1 中编译了 3 个其他框架,当尝试使用 Xcode 10.2 构建时,这些框架会引发类似的错误(使用 swift 4.2.1 编译的模块不能被 swift 5.0 导入)。

这个问题的大多数答案都围绕着将每个目标的 Swift 语言版本设置为 4.2.1。但是,由于我没有使用可可豆荚,我在 Xcode 中看不到任何选项来更改这个单独框架的 swift 语言版本。有任何想法吗?谢谢