简体   繁体   English

将Twitter API示例从Objective-C转换为Swift

[英]Convert twitter api example from objective-c to swift

I am new to objective C and swift , and have chosen the swift route . 我是不熟悉CSwift的新手,并且选择了快速路线 I am trying to convert this objective C example to swift and am failing. 我试图将这个客观的C示例转换为迅速而失败。

Can someone tell me where I am going wrong? 有人可以告诉我我要去哪里了吗?

//obj-c // 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
    }
}

I am doing something totally wrong, and would appreciate any help. 我做错了什么,希望能对您有所帮助。 Here's the error. 这是错误。

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'

try this 尝试这个

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM