我工作的一个项目,雨燕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