我工作的一個項目,雨燕2.3和我使用的是AlamoFire框架和SwiftyJSON爲實現我的網絡服務器調用方法。使用未聲明的類型「JSONDictionary」
因此我寫了一個單獨的類來調用這些服務器調用函數的地方我想在我的項目。
因此例如一旦登錄按鈕被點擊在這個類將執行登錄功能。
但是當我建立並運行該項目,一旦登錄按鈕被點擊應用程序崩潰和我越來越表示
使用未聲明的類型「JSONDictionary」的問題。
下面的代碼和我遇到的問題行標有註釋。
import UIKit
import Alamofire
import SwiftyJSON
struct Singleton {
static let instance : APIManager = APIManager()
}
public class APIManager: NSObject {
var appURLs = AppURLs.sharedInstance
public class var sharedInstance: APIManager {
return Singleton.instance
}
let manager = Manager()
override init() {
}
func login(username: String, password: String, completion: (user: User, success: Bool) ->(), failed:(error: NSError) ->()) -> Request {
let baseURL = NSURL(string: appURLs.mainBaseURL);
let urlRequest = NSURLRequest(URL: baseURL!.URLByAppendingPathComponent(appURLs.loginURL)!)
return manager.request(urlRequest)
.validate()
.responseJSON { response in
if let error = response.result.error {
failed(error: error)
print(error)
return;
}
print("working up to here")
let ok = ((response.result.value as! JSONDictionary)["success"] as? Bool)!//This is where I get the issue
if ok {
let userJson = JSON((response.result.value as! JSONDictionary)["user"]!)
let token = ((response.result.value as! JSONDictionary)["token"] as? String)!
NSUserDefaults.standardUserDefaults().setValue(token, forKey: "TOKEN")
NSUserDefaults.standardUserDefaults().synchronize()
//let user = user(json: userJson)
let user = User()
user.displayName = userJson ["displayName"].string
print("displayName is :", user.displayName)
completion(user: user,success: ok)
}
對不起,即時通訊新的迅速,所以我應該擺脫哪一行,以及在哪裏放置此代碼 – danu
編輯我的答案,檢查出來。 – Jeremy
我沒有從jsonObj獲得成功響應。任何想法爲什麼是這樣? – danu