将twitter api示例从objective-c转换为swift



我是目标Cswift的新手,并选择了swift路线。我试图将这个目标C示例转换为swift,但我失败了。

有人能告诉我哪里出了问题吗?

//obj-c

- (void)didTapButton {
    [[Digits sharedInstance] authenticateWithCompletion:^
    (DGTSession* session, NSError *error) {
    if (session) {
    // Inspect session/error objects
}

//swift

@IBAction func loginTouched(sender: AnyObject) {
    var dg = Digits.sharedInstance()
    dg.authenticateWithCompletion { (session: DGTSession!, error: NSError!) in
      //code
    }
}

我做了一件完全错误的事情,如果有任何帮助,我将不胜感激。这是错误。

2014-10-28 00:29:11.754 testign[49947:1809207] -[testign.ViewController loginTouched]: unrecognized selector sent to instance 0x7fba9a542190
2014-10-28 00:29:11.757 testign[49947:1809207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[testign.ViewController loginTouched]: unrecognized selector sent to instance 0x7fba9a542190'

尝试这个

@IBAction func loginTouched(sender: AnyObject) {
    var dg = Digits.sharedInstance()
    dg.authenticateWithCompletion({ (session: DGTSession!, error: NSError!) -> Void in
        //code
    })
}
import UIKit
import TwitterKit
class ViewController: UIViewController {
    var dg = Digits.sharedInstance()
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    //login to digits.
    @IBAction func loginTouched(sender: AnyObject) {
        dg.authenticateWithCompletion { (session: DGTSession!, error: NSError!) in
            if session != nil {
                println("Logged in with session:" + session.authToken)
            } else {
                println("Session object is nil")
            }
        }
    }
    //logout of digits.
    @IBAction func logoutTouched(sender: AnyObject) {
        dg.logOut()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

最新更新