2016-07-05 11 views
1

Swift for Googleアプリケーションエンジンのエンドポイントを使用してオブジェクトをリクエストしようとしていますが、エラーが発生していますが、パスしてください。とにかく私はiOS開発に新しいです。SwiftからGoogleアプリケーションエンジンエンドポイントへのRESTリクエストの作成中にエラーが発生する

import UIKit 

class MainController: UITabBarController { 
    var service : GTLRMyApiService? 
    var myvalue: String? 

    override func viewDidLoad() { 

     if service == nil { 
      service = GTLRMyApiService() 
      service?.retryEnabled = true 

     } 

     let query : GTLRMyApiQuery_GetRates = GTLRMyApiQuery_GetRates.query() 

     var ticket = GTLRServiceTicket.initialize 
     ticket = service!.executeQuery(query, completionHandler: { (ticket: GTLRServiceTicket, object: AnyObject!, error: NSError) -> Void in 
      print("Analytics: \(object) or \(error)") 
      let resp : GTLRMyApi_MyRates = object as! GTLRMyApi_MyRates 
      print("Black Market Dollar rate is: \(resp.value1)") 
      self.myvalue = resp.value1 

    }) 

} 

それはエラーを与える:

Cannot convert value of type '(GTLRServiceTicket, AnyObject!, NSError) -> Void' to expected argument type 'GTLRServiceCompletionHandler?'

答えて

0

私はこの同じ問題を抱えていたし、クロージャ内のパラメータのアンラップを変更することによってそれを解決:

ticket = service!.executeQuery(query, completionHandler: { (ticket: GTLRServiceTicket!, object: AnyObject?, error: NSError?) -> Void in 
     print("Analytics: \(object) or \(error)") 
     let resp : GTLRMyApi_MyRates = object as! GTLRMyApi_MyRates 
     print("Black Market Dollar rate is: \(resp.value1)") 
     self.myvalue = resp.value1 

}) 

私はスウィフトよんエキスパートですが、これは、Objective-Cの実装が期待しているものと一致する必要があると思います。 Xcodeはこれを明確にしていません。

関連する問題