[英]Convert twitter api example from objective-c to swift
I am new to objective C and swift , and have chosen the swift route . 我是不熟悉C和Swift的新手,并且选择了快速路线 。 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.