当前位置: 首页 > 面试题库 >

Alamofire类型'ParameterEncoding'没有成员'URL'Swift 3

柳胡媚
2023-03-14
问题内容

我正在尝试将代码从Swift 2版本迁移到Swift 3版本。我无法迁移以下代码部分,也没有找到任何解决方案。我该怎么做?

//标记:URLRequestConvertible

     public var URLRequest: NSMutableURLRequest {
            let urlComponent = NSURLComponents(string: Router.baseURL)!
            urlComponent.path = Router.basePath.stringByAppendingString(path)

            let mutableURLRequest = NSMutableURLRequest(URL: urlComponent.URL!)
            mutableURLRequest.HTTPMethod = method.rawValue

            var parameters: [String: AnyObject] = Dictionary()
            parameters["key"] = Router.key
            parameters["hl"] = "en"

            switch self {
            case .getMostPopularVideos(let pageToken):
                parameters["part"] = "snippet,contentDetails,statistics"
                parameters["chart"] = "mostPopular"
                parameters["videoCategoryId"] = TubeTrends.Settings.topTrendsCat
                if let pageToken = pageToken {
                        parameters["pageToken"] = pageToken
                }
                return Alamofire.ParameterEncoding.URL.encode(mutableURLRequest, parameters: parameters).0  //This part Giving Error like Alamofire Type 'ParameterEncoding' has no member 'URL'

//            default:
//                return mutableURLRequest
            }
        }
    }

问题答案:

我会将此计算属性的名称更改为request,以避免与新的类型名称冲突URLRequest。巧合的是,此计算属性应使用以下类型URLRequest

public var request: URLRequest {
    let url = URL(string: Router.baseURL)!
        .appendingPathComponent(Router.basePath)
        .appendingPathComponent(path)

    var request = URLRequest(url: url)
    request.httpMethod = method.rawValue

    var parameters = [String: Any]()
    parameters["key"] = Router.key
    parameters["hl"] = "en"

    switch self {
    case .getMostPopularVideos(let pageToken):
        parameters["part"] = "snippet,contentDetails,statistics"
        parameters["chart"] = "mostPopular"
        parameters["videoCategoryId"] = TubeTrends.Settings.topTrendsCat
        if let pageToken = pageToken {
            parameters["pageToken"] = pageToken
        }
        return try! Alamofire.URLEncoding.default.encode(request, with: parameters)
    }
}


 类似资料:
  • 问题内容: 我正在一个Swift操场上玩,正在上一堂新课。由于某种原因,我不断收到这样的错误:类“没有成员类型”,其名称的常量前面定义了三行。这是代码: Xcode Beta6一直在倒数第二行给我一个错误,说“ DataModel.Type没有名为’myCalendar’的成员 尽管我认为这不会有所作为,但我尝试将myCalendar定义为var。 问题答案: 您无法初始化引用同一类的另一个实例属

  • 问题内容: 将项目转换为swift 3后,在此代码块的第一行出现以下错误: 我猜该错误是由.. 语法变化引起的,对此的更正是什么? 问题答案: 新语法如下: 作为建议,您无需指定该字符串,因为假定您要为其分配值。

  • 问题内容: 我查看了以前的文章,但似乎找不到解决此问题的方法。所有三行代码都给出“类型’Any’没有下标成员”错误。对此还很陌生,因此不胜感激。 问题答案: 的类型为。下标是一种特殊的函数,它使用将值括在大括号中的语法。此下标功能由实现。 因此,这里发生的是,作为开发人员的YOU知道这是一个,但是编译器却没有。它不会让您调用该函数,因为您试图在type的值上调用它并且未实现。为此,您必须告诉编译器

  • 问题内容: 我刚刚将Firebase Storage更新为5.0.0,看来不再被认可了。() 尽管在查阅文档之后,它仍然应该可用: https://firebase.google.com/docs/reference/swift/firebasestorage/api/reference/Classes/StorageMetadata#/c:objc(cs)FIRStorageMetadata(i

  • 问题内容: 我收到此错误:尝试运行此代码块时,“类型’Any’没有下标成员”: 我一直在寻找答案,但找不到用FireBase解决此问题的答案。我该如何解决这个错误? 问题答案: 具有类型,因此您需要将其强制转换为基础类型,然后才能对其进行下标。由于is ,请使用可选的强制类型转换来建立类型,然后您可以访问字典中的值: 或者,您也可以单线执行此操作:

  • 问题内容: 该函数的第一行在:类上获取错误。 我遵循Django文档教程,并且它们具有相同的代码并正在运行。 我尝试调用一个实例。 也是我该类的models.py代码是… 无济于事,我仍然有这个错误。 我已经读过有关pylint的文章并进行了运行… 这没有帮助,即使github自述文件说… 防止有关Django生成的属性(例如Model.objects或Views.request)的警告。 我在我