Ios 错误:条件绑定的初始值设定项必须具有可选类型,而不是';字符串';

Ios 错误:条件绑定的初始值设定项必须具有可选类型,而不是';字符串';,ios,iphone,swift,Ios,Iphone,Swift,第二行出现字符串错误:条件绑定的初始值设定项必须具有可选类型,而不是“字符串” 如何决定使用可选变量还是非可选变量 var firstName: String = "John Appleseed" if let name = firstName { print ("Hello, \(name)") } 添加?使其成为可选 检查以了解在何处使用可选项以及它实际上是什么 希望这会有所帮助:) 添加?使其成为可选 检查以了解在何处使用可选项以及它实际上是什么 希望这有助于:(P>)首先,让我

第二行出现字符串错误:条件绑定的初始值设定项必须具有可选类型,而不是“字符串”

如何决定使用可选变量还是非可选变量

var firstName: String = "John Appleseed"
if let name = firstName {
    print ("Hello, \(name)")
}
添加
使其成为可选

检查以了解在何处使用可选项以及它实际上是什么

希望这会有所帮助:)

添加
使其成为可选

检查以了解在何处使用可选项以及它实际上是什么


希望这有助于:(

P>)首先,让我们考虑一下< <代码> > < <代码> >构造意味着什么。当你写作时

var firstName: String? = "John Appleseed"
if let name = firstName {
print ("Hello, \(name)")
}
你告诉斯威夫特你想

  • 尝试展开
    firstName
  • 如果展开结果成功,请将展开结果指定给
    name
  • 如果展开的结果成功,请打印“Hello,\(name)”

  • 换句话说,此构造用于处理可选变量的展开。但是,变量
    firstName
    不是可选的;没有东西可以打开,导致斯威夫特抱怨 > < <代码> >构造意味着什么。当你写作时

    var firstName: String? = "John Appleseed"
    if let name = firstName {
    print ("Hello, \(name)")
    }
    
    你告诉斯威夫特你想

  • 尝试展开
    firstName
  • 如果展开结果成功,请将展开结果指定给
    name
  • 如果展开的结果成功,请打印“Hello,\(name)”

  • 换句话说,此构造用于处理可选变量的展开。但是,变量
    firstName
    不是可选的;没有东西可以打开,导致斯威夫特抱怨

    错误说明了一切。。。您不能将可选绑定(
    如果让…
    )与非可选绑定一起使用。要么将
    String
    更改为
    String?
    ,要么完全取消可选绑定(取决于这只是为了演示还是实际代码)。错误说明了一切。。。您不能将可选绑定(
    如果让…
    )与非可选绑定一起使用。将
    String
    更改为
    String?
    ,或者完全取消可选绑定(取决于这是演示还是实际代码)。请注意,如果这是实际的生产代码,这不是一个好建议。。。一般来说,您应该更喜欢非可选的,而不是可选的。因此,如果您在定义时知道
    firstName
    的值,并且知道它总是有值的,那么它肯定是非可选的。请注意,如果这是实际的生产代码,这不是一个很好的建议。。。一般来说,您应该更喜欢非可选项而不是可选项–因此,如果您在定义时知道
    firstName
    的值,并且知道它总是有一个值,那么它肯定应该是非可选项。