2015-04-28 66 views
1

使用夫特我可以像以下回調:夫特回調內聯函數用法

userService.validateToken("6beba35f", success: onSuccess, failure: onFailure) 

func onSuccess(status_code: Int, data: String) 
{ 
    var dd : String = "" 
} 

func onFailure(status_code: Int, data: String) 
{ 
    var dd : String = "" 

} 

,但我想有在同一行作爲該呼叫的功能:

實施例1:

userService.validateToken("6beba35f", 
     success: (Int, String) ->() 
      { 
     }, 
     failure: (Int, String) ->() 
      { 
    }) 

實施例2:

userService.validateToken("6beba35f", 
     success: (Int, String) 
      { 
     }, 
     failure: (Int, String) 
      { 
     }) 

都給出錯誤。我認爲,即時通訊緊密與例1,但它不斷給我一個錯誤「預期,分隔符」當我把它添加「」

success: (Int, String), ->() 但錯誤口口聲聲說‘預計,分隔符’

任何想法是什麼解決方案?

包括函數

func validateToken(token: String, success: (Int, String) -> Void, failure: (Int, String) -> Void) 
{ 
    if(Network.isOnline()) 
    { 
     var url: String = Commons.plistValue("Base URL") + "/security/" + token 

     Alamofire.request(.GET, url) 
      .responseJSON { (request, response, json, error) in 

       let jsonData: JSON = JSON(json!) 
       let statusCode: Int = response!.statusCode 

       if(statusCode == 202) 
       { 
        success(statusCode, jsonData["status"]["message"].stringValue) 
       } 
       else 
       { 
        failure(statusCode, jsonData["status"]["message"].stringValue) 
       } 
      } 
    } 
    else 
    { 
     failure(-1, "No Internet Connection") 
    } 

} 

使用修復

userService.validateToken("6beba35f", 
     success: { status_code, data in 
      (
       println(status_code) 
      ) 

     }, 
     failure: { status_code, data in 
      (
       println(status_code) 
      ) 
    }) 
+0

我包含了validateToken函數 – adviner

+1

你有沒有試過'{status_code,數據在(代碼在這裏)}'? – zneak

+0

OMG你的男人。非常感謝 – adviner

回答

1

several ways聲明或使用閉。您正在尋找最簡單的可能就是:

{ status_code, data in 
    println(status_code) 
} 

這需要以這樣的方式,編譯器可以推斷的status_codedata類型,並確定應該沒有返回值被使用。例如,你可以把它作爲一個函數參數傳遞(你想要的),或者將它賦值給一個具有適當類型提示的變量。

+0

謝謝你的鏈接也有助於噸:) – adviner

+0

我在這裏有一個類似的問題我仍然試圖弄清楚,它有一個開放的賞金如果有人想採取刺探它:http://stackoverflow.com/questions/29871633/how-would-i-create-a-callback-around-an-xml-request –