2016-09-25 6 views
0

私は現在cocoapods 1.1.0.rc.2を使用しています。私はAlamofireポッドをインストールしました。バージョン1.1.0.rc.2では、swift 3.0で動作するはずです。私はこれを構築するとき、私は次のエラーを取得するただし、次のenumenumを宣言するルータAlamofire swift 3.0

enum Router: URLRequestConvertible { 
     static let baseURLString = "https://api.instagram.com" 
     static let clientID = "myID" 
     static let redirectURI = "http://www.example.com/" 
     static let clientSecret = "mySecret" 

     case PopularPhotos(String, String) 
     case requestOauthCode 

     static func requestAccessTokenURLStringAndParms(code: String) -> (URLString: String, Params: [String: AnyObject]) { 
      let params = ["client_id": Router.clientID, "client_secret": Router.clientSecret, "grant_type": "authorization_code", "redirect_uri": Router.redirectURI, "code": code] 
      let pathString = "/oauth/access_token" 
      let urlString = Instagram.Router.baseURLString + pathString 
      return (urlString, params as [String : AnyObject]) 
     } 

     // MARK: URLRequestConvertible 

     var URLRequest: NSMutableURLRequest { 
      let result: (path: String, parameters: [String: AnyObject]?) = { 
       switch self { 
       case .PopularPhotos (let userID, let accessToken): 
        let params = ["access_token": accessToken] 
        let pathString = "/v1/users/" + userID + "/media/recent" 
        return (pathString, params as [String : AnyObject]?) 

       case .requestOauthCode: 
        let pathString = "/oauth/authorize/?client_id=" + Router.clientID + "&redirect_uri=" + Router.redirectURI + "&response_type=code" 
        return (pathString, nil) 
       } 
      }() 

      let baseURL = NSURL(string: Router.baseURLString)! 
      let URLRequest = NSURLRequest(url: NSURL(string: result.path ,relativeTo:baseURL as URL)! as URL) 
      let encoding = Alamofire.ParameterEncoding.encode(baseURL as! ParameterEncoding) 
      //let encoding = Alamofire.ParameterEncoding.URL 
      return encoding.encode(URLRequest, parameters: result.parameters).0 
     } 
    } 

を宣言しようとしているが 。

Type 'Router' does not conform to protocol 'URLRequestConvertible' 

誰もが、私はここに欠けているものを知っていますか?

+0

私は同じ問題を抱えています。あなたはこれのための解決策を見つけましたか? ありがとう –

+0

@ravisendhavいいえまだ残念ながら何も見つかりませんでした – NoSixties

+0

あなたは私の下のポストでこれの解決策をチェックすることができます。 –

答えて

1
enum Router: URLRequestConvertible { 

    static let baseURLString = "www.google.com" 


    case getToken([String: AnyObject]) 

    var method: HTTPMethod { 

     switch self { 
     case .getToken: 
      return .post 
     default: 
      break 

     } 
    } 

    var path: String { 
     switch self { 
     case .getToken: 
      return "token" 
     default: 
      break 
     } 
    } 


    func asURLRequest() throws -> URLRequest { 

     let url = Foundation.URL(string: baseURLString)! 

     var urlRequest = URLRequest(url: url.appendingPathComponent(path)) 
     urlRequest.httpMethod = method.rawValue 


     urlRequest.setValue("application/json", forHTTPHeaderField: "Content") 
     urlRequest.setValue("keep-alive", forHTTPHeaderField: "Connection") 

     switch self { 
     case .getToken(let parameters): 
      urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters) 
     default: 
      break 
     } 
     return urlRequest 

    } 
} 
関連する問題