2016-12-07 2 views
2

Я использую пакет https://github.com/kylef/JSONWebToken.swift для обработки кодирования и декодирования JWT.Swift Неоднозначная ссылка на член

Я нахожусь на Swfit 3 и xcode 8.0.1. Проблема, которую я имею, после импорта JWT в мой файл контроллер, когда я звоню

JWT.encode(claims: ["my": "payload"], algorithm: .hs256("secret".data(using: .utf8)!)) 

компилятор жалуется:

Неоднозначности ссылки на член 'закодировать (_: алгоритм).

Затем я нажал Ctrl + клик по методу JWT.encode и проследил метод вниз и обнаружил, что метод JWT.encode фактически ссылается на метод .encode в MultipartFormData.swift из Alamofire.

Я импортировал как JWT, так и Alamofire.

В принципе, JWT и Alamofire MultipartFormData.swift имеют открытый метод, называемый encode, и я вызываю его явно JWT.encode, почему он ссылается на метод кодирования в библиотеке Foundation?

Как это исправить?

Благодаря

ответ

2

ли вы пытаетесь предварить имя метода с модулем? Он должен работать в соответствии с этим ответом: https://stackoverflow.com/a/25232124/250164


EDIT: Я думаю, что я понял это. Ваша сигнатура функции неверна, поэтому метод кодирования не может быть найден. Вместо этого используйте следующий код: это работает для меня:

JWT.encode(["my": "payload"], algorithm: .hs256("secret".data(using: .utf8)!)) 
+0

Я звоню по JWT.encode(). Это то, что вы имели ввиду? –

+0

Возможно, это будет что-то вроде JWT.JWT.encode(). Я бы предположил, что JWT - это модуль, который содержит класс JWT, который имеет метод, называемый encode. Что-то вроде того. –

+0

Ну. Я почти пробовал почти все возможности, но это не сработало. –

Смежные вопросы