我的代码与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)
}
但不幸的是它仍然显示可选....
非常奇怪....
答案 0 :(得分:0)
在第
行destinationVC.sstitre1 = "\(sstitre1)"
假设变量包含"Optional(foo)"
,始终将文字字符串destinationVC.sstitre1
分配给"foo"
解决方案是删除String Interpolation
destinationVC.sstitre1 = sstitre1
PS:你应该使用更多的描述性变量名称