2016-06-14 3 views
0

У меня возникли проблемы с вызовом функции твита. Я продолжаю получать ошибки с параметрами. Я также попробовал просто (AnyObject) и получил Ошибка: тип аргумента не соответствует ожидаемому ...вызов функции из viewcontroller - ошибка параметров - Swift2

Я новичок в быстрой и не уверен, как это работает. Пробовал все, что мог придумать. Спасибо

// from GameScene 
    var vc = ViewController() 
    vc.tweetAction(sender: AnyObject) 
    //error: cannot create single-element tuple with an element label 



    //function in View Controller below 

    @IBAction func tweetAction(sender: AnyObject){ 

    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter){ 

     let tweetController = SLComposeViewController(forServiceType: SLServiceTypeTwitter) 

     tweetController.setInitialText("I Scored on this app") 

     self.presentViewController(tweetController, animated: true, completion: nil) 
    } 
    else{ 

     let alert = UIAlertController(title: "Accounts", message: "Please log into your twitter to share", preferredStyle: UIAlertControllerStyle.Alert) 

     alert.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default, handler: nil)) 

     alert.addAction(UIAlertAction(title: "Settings", style: UIAlertActionStyle.Default, handler: { (UIAlertACtion) in 

      let settingsURL = NSURL(string:UIApplicationOpenSettingsURLString) 

      if let url = settingsURL{ 

       UIApplication.sharedApplication().openURL(url) 
      } 
     })) 
    self.presentViewController(alert, animated: true, completion: nil) 
} 
} 

ответ

0

Вы передаете тип вызову метода вместо экземпляра. Вы также включаете метку для первого параметра, что неверно. Попробуйте:

vc.tweetAction(self) 
+0

сам, кажется, взломать код, когда нажата кнопка. строка ----------------> пусть skView = self.view как! SKView выдает ошибку «Thread1 signal SIGARBT, –

+0

Что такое ошибка? Есть ли трассировка стека? –

+0

Ошибка« Thread 1: signal SIGABRT »Линия, которая ломается, - это' let skView = self.view as! SKView', где я настраиваю Консоль говорит: «Невозможно передать значение типа UIVIew в SKView. Кнопка представляет собой SKSpriteNode, если это делает любое различие. –

0

Попробуйте изменить тип параметра отправителя из AnyObject в UILabel

var vc = ViewController() 
vc.tweetAction(yourUILabelInstance) 

И не забудьте изменить функцию tweetAction, а

@IBAction func tweetAction(sender: UILabel){ 
... 
} 
Смежные вопросы