Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asURLRequest Alamofire重试错误_Url_Swift3_Alamofire - Fatal编程技术网

asURLRequest Alamofire重试错误

asURLRequest Alamofire重试错误,url,swift3,alamofire,Url,Swift3,Alamofire,在Swift 3.0中,我使用以下抛出函数生成URLRequest func asURLRequest() throws -> URLRequest { let result: (path: String, parameters: [String: AnyObject]?) = try { switch self { case .PopularPhotos (let userID, let accessToken):

在Swift 3.0中,我使用以下抛出函数生成URLRequest

func asURLRequest() throws -> URLRequest {

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

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

            default: break

            }
        }()
但是,当我调用函数时:

let request = Instagram.Router.requestOauthCode.asURLRequest()
我得到以下错误:“调用可以抛出,但它没有标记为‘try’,并且错误没有被处理

我已经看过几篇关于Swift 3.0中错误处理和抛出函数的教程,但我不知道如何在这里处理错误

完整的课程代码如下:

struct Instagram {

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

    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 try (urlString, params as [String : AnyObject])
    }
    // MARK: URLRequestConvertible

    func asURLRequest() throws -> URLRequest {

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

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

            default: break

            }
        }()


        let baseURL = try Router.baseURLString.asURL()
        let urlRequest = try URLRequest(url: baseURL.appendingPathComponent(result.path))
        return try Alamofire.URLEncoding.default.encode(urlRequest, with: result.parameters)




    }

}

}

尝试将函数调用包装在一个
do catch
块中,并用
Try
标记它

do {    
    let request = try Instagram.Router.requestOauthCode.asURLRequest()

    // Continue with normal flow here.
} catch {
    // Handle error here.
}

有人知道如何解决这个问题吗?在这之后的一行中,我有了类似于:self.webView.loadRequest(请求为URLRequest)的smthg,它现在说…对成员请求的不含糊引用(u:method:parameters:encoding:headers)