2015-09-18 50 views
5

kodum Swift 2.0 migation önce:Bu durumda alt çizgi ne anlama geliyor?

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 
    } 
} 

göç ​​

func textSelected(selectedText:String, selectedType:Int) { 
     var fullTextArr = text.componentsSeparatedByString("\n") 
     _ = [String]() // !!!!!!!!! 

I

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 
    } 

veya

func textSelected(selectedText:String, selectedType:Int) { 
     var fullTextArr = text.componentsSeparatedByString("\n") 
     var myArray = [String]() // !!!!!! 

olarak değiştirmek için söyledi Göremiyorsunuz, nedir _ = şu an için duruyor :-(

cevap

8

_ bir yer tutucudur. Bu, _'a atanan değerlerin dikkate alınmadığı anlamına gelir.

Xcode'un geçiş aracı, bu değişiklikleri, source veya myArray'u hiçbir yerde kullanmadığınızı, dolayısıyla bu değişkenleri yer tutucu tarafından değiştirdiğinizi algıladığından bu değişikliği yaptı. Bir değişkene atanmak yerine, segue.sourceViewController as! RhymeViewController döndürülen sonucu ve [String]() döndürülen sonucu yok sayılır.

Geri dönen sonuç dikkate alınmaz ancak ifade çalışma zamanında değerlendirilir: yan etkileri varsa, bu efektler ortaya çıkar. Yani bu talimatlara gerçekten ihtiyacınız yoksa, tamamen onlardan kurtulmanız gerekir.

+0

Kullanılmayan bir değişkenin referansını saklamak gerekmediğinden göz ardı ediliyor mu yoksa sadece bir derleyici optimizasyonu mu? – jarryd

+1

Bunlar hesaplanır (değerlendirilir) ancak geri dönen sonuç (varsa) belleğe atanmamışsa, geçersiz sayılır. – Moritz

+0

runtime – jarryd