Swift 3升级后标签上显示的选项

时间:2016-11-25 19:11:00

标签: swift3

我的代码与Swift2完美配合,现在对于某些标签,变量显示但是在...之前使用Optional(....)...

Swift 2上的优秀代码

var sstitre1:String!
 print(sstitre1)

有一个执行segue,它将值填充到sstitre1。

    var sstitre1:String?

    sstitre1 = json[21].string


 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "hugo"
    {
        if let destinationVC = segue.destination as? MonumentViewController{

            destinationVC.sstitre1 = "\(sstitre1)"

        }

    }
}

使用Swift3,我得到: 可选(.....)

我想摆脱Optional。

所以我建议在stackoverflow的几个帖子上做一些代码更改。

var sstitre1:String!

If let espoir = sstitre1 {
print (espoir)
}

但不幸的是它仍然显示可选....

非常奇怪....

1 个答案:

答案 0 :(得分:0)

在第

destinationVC.sstitre1 = "\(sstitre1)"
假设变量包含"Optional(foo)"

始终将文字字符串destinationVC.sstitre1分配给"foo"

解决方案是删除String Interpolation

destinationVC.sstitre1 = sstitre1

PS:你应该使用更多的描述性变量名称