我正在使用https://github.com/kylef/JSONWebToken.swift用于处理 JWT 编码和解码的包。
我使用的是 Swfit 3 和 xcode 8.0.1。我遇到的问题是,将 JWT 导入我的 Controller 文件后,当我调用
JWT.encode(claims: ["my": "payload"], algorithm: .hs256("secret".data(using: .utf8)!))
编译器提示:
Ambiguous reference to member 'encode(_:algorithm)'.
然后,我按下 command + 单击 JWT.encode 方法,并跟踪该方法,发现 JWT.encode 方法实际上引用了 Alamofire 的 MultipartFormData.swift 中的 .encode 方法。
我已经导入了 JWT 和 Alamofire。
基本上,JWT和Alamofire MultipartFormData.swift都有一个名为encode的公共(public)方法,我显式地调用它JWT.encode,为什么它会引用Foundation库中的encode方法?
我该如何解决这个问题?
谢谢
最佳答案
您是否尝试在方法名称前加上模块前缀?它应该根据这个答案工作:https://stackoverflow.com/a/25232124/250164
编辑:我想我已经弄清楚了。您的函数签名错误,因此无法找到编码方法。请改用以下代码,这似乎对我有用:
JWT.encode(["my": "payload"], algorithm: .hs256("secret".data(using: .utf8)!))
关于ios - Swift 对成员的引用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41028994/