String不能转换为String:AnyObject

时间:2015-06-12 13:28:04

标签: 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 params抛出错误: [String]不能转换为[String:AnyObject]

我对Swift有点新意,到目前为止无法弄清楚,从哪里开始。我想我提供了我定义的数组。那么这个错误是什么意思呢?

1 个答案:

答案 0 :(得分:1)

在你的交换机案例中,你需要将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)
            }

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