structs protocol constructors ios swift self

ios - protocol - structs in swift



Swift-realiza Segue (2)

if (view.annotation.title as String!) == "Helgoland " { currentLong = 7.889021 currentLat = 54.180210 url = "google.com" let alertController: UIAlertController = UIAlertController(title: "Change Map Type", message: nil, preferredStyle: UIAlertControllerStyle.Alert) let cancelAction: UIAlertAction = UIAlertAction(title: "Back", style: UIAlertActionStyle.Cancel, handler: nil) let button1action: UIAlertAction = UIAlertAction(title: "Product Page", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction!) -> () in performSegueWithIdentifier("showShop", sender: self) }) let button2action: UIAlertAction = UIAlertAction(title: "Video", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction!) -> () in youtubeVideoID = "XX" UIApplication.sharedApplication().openURL(NSURL(string: "http://www.youtube.com/watch?v=/(youtubeVideoID)")) }) alertController.addAction(cancelAction) alertController.addAction(button1action) alertController.addAction(button2action) self.presentViewController(alertController, animated: true, completion: nil) }

Siempre me sale un error con

"Uso implícito de ''yo'' en el cierre; uso ''yo''. para hacer explícita la captura semántica "

pero si configuro self.view , también falla.


Para Swift 3

_ = self.navigationController?.popToRootViewController(animated: false)


Tendrás que usar explícitamente el yo:

self.performSegueWithIdentifier("showShop", sender: self)

Y para Swift 3 (thx @KingChintz):

self.performSegue(withIdentifier: "showShop", sender: self)