1
我想將令牌作爲String類型獲取,但下面的代碼返回錯誤,因爲「」String「不能轉換爲」Void「」。 你能告訴我什麼問題? 爲了解析JSON,我用SwiftyJSONSwift:從NSURLSession任務中返回JSON字符串
func authentication() -> String {
let request = NSMutableURLRequest(URL: NSURL(string: "https://~~~/v2/authenticate/api")!)
request.HTTPMethod = "POST"
var loginID = "my_ID"
var apiKey = "my_APIKEY"
var postString:NSString = "login_id=\(loginID)&api_key=\(apiKey)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
println("error=\(error)")
return
}
println("response = \(response)")
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
println("responseString = \(responseString)")
let json = JSON(data:data)
if let token = json["auth_token"].stringValue{
println("\(token)")
return token ///Error Here
}
}
task.resume()
}
※被修改Jan6th 7:50(GMP + 9小時) 我編輯如下,但是我有誤差爲 「」 使用未解決的識別符 「tokenString」。 請告訴我如何解決問題。
func authentication() -> String {
let request = NSMutableURLRequest(URL: NSURL(string: "https://~~~/v2/authenticate/api")!)
request.HTTPMethod = "POST"
var loginID = "my_ID"
var apiKey = "my_APIKEY"
var postString:NSString = "login_id=\(loginID)&api_key=\(apiKey)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
println("error=\(error)")
return
}
println("response = \(response)")
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
println("responseString = \(responseString)")
let json = JSON(data:data)
if let token = json["auth_token"].stringValue{
println("\(token)")
tokenString = self.didReceiveAuthToken(token)///Edited
}
}
task.resume()
return tokenString
}
func didReceiveAuthToken(token : String) ->String{
return token
}
我根據上述建議編輯了代碼,但是我無法在認證功能之外獲得標記字符串。你能告訴我該怎麼做嗎? – lalala
使用該標記作爲參數,調用您創建的方法。 –
會不會有一個簡單的委託模式,來調用一個方法並將數據傳回另一個類,這裏也是一個好的解決方案嗎? – Woodstock