如何在 Swift 结构上创建可选参数

How to create optional parameters on Swift struct

我正在尝试为具有可选图标的输入字段构建结构。

如果将图标名称作为参数传入,则会加载,否则不会加载。

我收到我不理解的错误 Value of optional type 'String?' must be unwrapped to refer to member 'isEmpty' of wrapped base type 'String'

此外,当我初始化结构时,尽管有可选的 ?指标。

将 if 语句更改为此

if preIcon?.isEmpty == false

然后改变

var preIcon: String?

var postIcon: String?

因为 preIcon 是一个可选的,你必须先打开它才能访问它的属性。所以,你的行需要是:

if let preIcon = preIcon, !preIcon.isEmpty {

您可以在以下位置了解有关可选绑定(上面使用的 if let 语法)的更多信息:https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html


struct 要求属性标记为可选属性而言,尽管 Xcode 可能在自动完成中包含可选属性,但实际上并不要求您包含它们的值——它们可以被删除,你的初始化程序仍然有效。