swift - 字符串无法转换为字符串 :AnyObject

标签 swift nsurlrequest alamofire

我正在尝试使用 Alamofire 助手与我的服务器联网。我正在构建一个路由器来处理我的 API 端点。结构本身对我来说似乎很清楚,但我在一些 SWIFT 语法上遇到了困难。

enum Router:URLRequestConvertible {
    static let baseURLString = "url"

    case AEDS

    var URLRequest: NSURLRequest {
        let (path: String, parameters: [String: AnyObject]) = {
            switch self {
            case .AEDS:
                let params = [""]
                return("/aeds", params)
            }
        }()

        let URL = NSURL(string: Router.baseURLString)
        let URLRequest = NSURLRequest(URL: URL!.URLByAppendingPathComponent(path))
        let encoding = Alamofire.ParameterEncoding.URL
        return encoding.encode(URLRequest, parameters: parameters).0
    }

}

我收到消息,在我的案例 .AEDs 中,参数抛出错误: [String] 无法转换为 [String: AnyObject]

我对 Swift 有点陌生,到目前为止还不知道从哪里开始。我想我提供了我定义的数组。那么这个错误意味着什么?

最佳答案

在您的 switch 情况下,您需要将 params 定义为字典而不是数组。

 switch self {
        case .AEDS:
            let params = [""]  <---- This is initialising an array containing a string
            return("/aeds", params)
        }

尝试更改为:

switch self {
            case .AEDS:
                let params = ["" : ""]  <---- This will create a dict
                return("/aeds", params)
            }

这应该可以解决你的问题。

关于swift - 字符串无法转换为字符串 :AnyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30804356/

相关文章:

iphone - 释放 Controller 时清理挂起的 NSURLConnections

ios - 如何通过swift打开表情符号键盘

ios - 如何在 Swift 中将字典值数组打印成漂亮的字符串

swift - 使用两个类创建协议(protocol)

ios - 发送多个 NSURLSession

ios - 如何深度复制 NSMutableURLRequest?

ios - 如何使用 POST 请求登录网站? ( swift ,iOS)

ios - 使用 alamofire 下载不完整的文件

ios - 使用 alamofire 发布带有字典和字典数组的 JSON 对象

ios - 使用 segue 中的参数调用函数