我在安装Swift 2.0之前的代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "RhymeFavoriten") {
// pass data to next view
let dest = segue.destinationViewController as! FavoritenViewController
let source = segue.sourceViewController as! RhymeViewController // !!!!!!
dest.favoritenType = 1
dest.delegate = self
}
}
迁移告诉我将其更改为
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "RhymeFavoriten") {
// pass data to next view
let dest = segue.destinationViewController as! FavoritenViewController
_ = segue.sourceViewController as! RhymeViewController // !!!!!!!!!!
dest.favoritenType = 1
dest.delegate = self
}
或
func textSelected(selectedText:String, selectedType:Int) {
var fullTextArr = text.componentsSeparatedByString("\n")
var myArray = [String]() // !!!!!!
到
func textSelected(selectedText:String, selectedType:Int) {
var fullTextArr = text.componentsSeparatedByString("\n")
_ = [String]() // !!!!!!!!!
我看不出, _ = 代表什么: - (
答案 0 :(得分:9)
_
是一个占位符。这意味着将忽略分配给_
的值。
Xcode的迁移工具进行了此项更改,因为它检测到您没有在任何地方使用source
或myArray
,因此占位符替换了这些变量。
现在,我们不会将其分配给变量,而是会忽略segue.sourceViewController as! RhymeViewController
的返回结果和[String]()
的返回结果。
忽略返回的结果,但仍在运行时评估表达式:如果它有副作用,则会发生这些效果。
因此,如果你真的不需要这些说明,你应该完全摆脱它们。