类型不符合Alamofire协议'URLRequestConvertible'

Bri*_*ure 6 ios swift alamofire

这是代码:

enum Router: URLRequestConvertible {
    //Error: Type 'Five100px.Router' does not conform to protocol 'URLRequestConvertible'

    static let baseURLString = "https://api.500px.com/v1"
    static let consumerKey = "MY_KEY"

    case PopularPhotos(Int)
    case PhotoInfo(Int, ImageSize)
    case Comments(Int, Int)

    var URLRequest: NSURLRequest {

        let (path, parameters) : (String, [String: AnyObject]) = {

            switch self {

            case .PopularPhotos(let page):
                let params = ["consumer_key": Router.consumerKey, "page": "\(page)", "feature": "popular", "rpp": "50", "include_store": "store_download", "include_status": "votes"]
                return ("/phtos", params)

            case .PhotoInfo(let photoID, let ImageSize):
                var params = ["consumer_key": Router.consumerKey, "image_size": "\(ImageSize.rawValue)"]
                return ("/photos/\(photoID)", params)

            case .Comments(let photoID, let commentsPage):
                var params = ["consumer_key": Router.consumerKey, "comments": "1", "comments_page": "\(commentsPage)"]
                return ("/photos/\(photoID)/comments", 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
    }
}
Run Code Online (Sandbox Code Playgroud)

我导入了Alamofire并添加了此代码,然后出现错误.我根据raywenderlich教程编写了这段代码:http://www.raywenderlich.com/85080/beginning-alamofire-tutorial ,这是用Swift 1.2编写的,当我使用Swift 2时.

cno*_*oon 10

你需要NSMutableURLRequestURLRequest属性中返回一个而不是一个NSURLRequest.这将解决错误.


更新

在Swift 3和Alamofire 4中,您需要URLRequest从新asURLRequest()方法返回一个.有关更多详细信息,请参阅我们更详细的README 示例.