如何在 Alamofire 中保存对 NSDictionary 的响应值?

Posted

技术标签:

【中文标题】如何在 Alamofire 中保存对 NSDictionary 的响应值?【英文标题】:How to save response value to NSDictionary in Alamofire? 【发布时间】:2016-07-27 05:09:13 【问题描述】:

我正在使用 Alamofire v3.4.1,我通过这样的 GET 方法获取 JSON 的结果,

@IBAction func verifyAction(sender: AnyObject)  

    let tempEmail: String = "\(emailTxtField.text!)"
    let tempApi : String = appDelegate.apiKey as String 
    var status : String
    Alamofire.request(.GET, "http://www.somejsonurl.com/checkEmailExits", parameters: ["APIKey": "\(tempApi)","Email" : "\(tempEmail)"])
            .responseJSON  response in
              print(response.request)  // original URL request
              print(response.response) // URL response
              print(response.data)     // server data
              print(response.result)   // result of response serialization

                let JSON = response.result.value         
                let dict1 = JSON!["Result"]
                let dict2 = dict1!!["Status"]
                status = dict2 as! String

    

现在,一旦我为 status 赋值,xcode 就会给我错误:

在初始化之前由闭包捕获的变量“状态”

有没有办法存储对NSDictionary 的响应,也可以在其他功能中使用?谢谢

【问题讨论】:

回复是: "Result": "Status": "0" var status : String 更改为var status = String()var status = "" 不,这是行不通的,xcode 是误解,说要把; 放在两者之间 你只需要添加一行检查我的答案。 @JackSparrow var status = String() 就是你所需要的......如果你想给出空字符串而不是像var status = ""这样初始化 【参考方案1】:

您需要在为其赋值之前初始化您的对象,因此像这样声明您的 status 对象

var status = String()

或者

var status: String = ""

【讨论】:

以上是关于如何在 Alamofire 中保存对 NSDictionary 的响应值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Alamofire 将用户配置文件图像保存到 MYSQL 数据库,然后在以下屏幕上检索

将 Alamofire 结果保存为变量?

使用 Alamofire 在 user_id iOS 中保存数据

Alamofire 没有将文件保存到磁盘

如何使用 Alamofire.request() 将 XML 肥皂响应保存到文件?

如何使用 alamofire 将服务的响应存储在模型中