自从在
Xcode 8(Beta 1)和
Swift 3上升级后,我在此行中出错:
@H_404_8@
@H_404_8@
account.requestAccessToAccounts(with: accountType,options: nil,completion: {(success: Bool,error: NSError!) -> Void in
它说:@H_404_8@
@H_404_8@
Cannot convert value of type ‘(Bool,NSError!) -> Void’ to expected argument type ‘ACAccountStoreRequestAccessCompletionHandler!’@H_404_8@
在那之前,我定义了“account”和“accountType”:@H_404_8@
@H_404_8@
let account = ACAccountStore() let accountType = account.accountType( withAccountTypeIdentifier: ACAccountTypeIdentifierTwitter)
这是我的(使用Xcode 7和Swift 2)代码:@H_404_8@
@H_404_8@
func getTimeline() { //https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi&count=2 let account = ACAccountStore() let accountType = account.accountType( withAccountTypeIdentifier: ACAccountTypeIdentifierTwitter) account.requestAccessToAccounts(with: accountType,error: NSError!) -> Void in if success { let arrayOfAccounts = account.accounts(with: accountType) if arrayOfAccounts.count > 0 { let twitterAccount = arrayOfAccounts.last as! ACAccount let requestURL = URL(string: "https://api.twitter.com/1.1/statuses/user_timeline.json") let parameters = ["screen_name": self.userName!,"count" : "20"] let postRequest = SLRequest(forServiceType: SLServiceTypeTwitter,requestMethod: SLRequestMethod.GET,url: requestURL,parameters: parameters) postRequest.account = twitterAccount postRequest.perform( handler: {(responseData: Data!,urlResponse: HTTPURLResponse!,error: NSError!) -> Void in if error != nil { Crashlytics.sharedInstance().recordError(error) } do { self.dataSource = try JSONSerialization.jsonObject(with: responseData,options: JSONSerialization.ReadingOptions.mutableLeaves) as! [AnyObject] if self.dataSource.count != 0 { DispatchQueue.main.async { self.tableView.reloadData() } } } catch { print("catching") } }) } } else { print("Failed to access account") } }) }