gpt4 book ai didi

ios - 使用 Alamofire 和 Argo : Could not find member 'None'

转载 作者:行者123 更新时间:2023-11-28 09:09:30 25 4
gpt4 key购买 nike

Argo 在 Swift 上解析 Alamofire 响应时遇到问题。它说:

找不到成员“无”

我真的是 Swift 的菜鸟,我不知道会发生什么。我尝试使用 nil 和 &error 而不是 .None 但仍然无法正常工作

import Foundation
import Alamofire
import Argo
import Runes

public class ApiConnector{

private final var serverHost = "http://192.168.1.2/gpio-web/api/v1/api.php";

func readPin(pin: Int) -> String{
var result = "empty"
Alamofire.request(.GET, serverHost, parameters: ["action": "input", "pins": pin])
.response { (request, response, data, error) in
let json: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(0), error: .None)
if let j: AnyObject = json {
let value = JSONValue.parse(j)
let response = Response.decode(value)
}

}

return result;

}


}

struct Response {
let status: String;
}

extension Response: JSONDecodable {
static func create(status: String) -> Response {
return Response(status: status)
}

static func decode(j: JSONValue) -> Response? {
return Response.create
<*> j <| "status"
}
}

最佳答案

您可以将 nil 传递给 optionserror 参数:

let json: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)

但您可能应该使用错误字段,并在发生错误时做出响应:

var error: NSError?
let json: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error)

if (json == nil && error != nil) {
let error = error!
// do something with error
}

就是说,您正在尝试在这里Alamofire 已经可以为您做的事情:解析 JSON。

不使用 .response(),而是使用 .responseJSON(:_)。这将为您转换对象。

关于ios - 使用 Alamofire 和 Argo : Could not find member 'None' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com