我使用https://github.com/kylef/JSONWebToken.swift包来处理JWT的编码和解码。
我在Swfit 3和xcode 8.0.1上。我遇到的问题是,在将JWT导入我的控制器文件后,当我调用
时JWT.encode(claims: ["my": "payload"], algorithm: .hs256("secret".data(using: .utf8)!))
编译器抱怨:
对成员'encode(_:algorithm)'的模糊引用。
然后按下命令+单击JWT.encode方法并跟踪该方法,发现JWT.encode方法实际上引用了Alamofire的MultipartFormData.swift中的.encode方法。
我已经导入了JWT和Alamofire。
基本上,JWT和Alamofire MultipartFormData.swift都有一个名为encode的公共方法,我将它显式调用JWT.encode,为什么它会引用Foundation库中的encode方法?
我该如何解决?
由于
答案 0 :(得分:2)
您是否尝试使用模块为方法名称添加前缀?它应该根据这个答案工作:https://stackoverflow.com/a/25232124/250164
编辑:我想我弄清楚了。您的函数签名错误,因此无法找到编码方法。请改用以下代码,这似乎对我有用:
JWT.encode(["my": "payload"], algorithm: .hs256("secret".data(using: .utf8)!))