AlamofireをSwift 3の構文にアップグレードするURLRequestConvertible(コードセクションは現在準拠していない)に基づいてルータをアップグレードする最も安全な方法は何でしょうか。私はいくつかのことを試しましたが、私の気持ちはURLエンコーディングが少し変わるかもしれないということです。ルータコードをAlamofire 4.0とSwift 3にアップグレード
Alamofireは、もはや有効ではないParameterCoding.URLのように、 "。GET"がコンパイラエラーを引き起こすということが、私が直接見ることができるエラーを大幅に変更したようです。
私は(おそらく私のコードでは、少なくとも30個の異なる場所で)持っているコードパターンがある:Alamofireとスウィフト3における洞察力と
// MARK: - AlamoFire Router
enum Router: URLRequestConvertible
{
static let baseURL = Singleton.sharedInstance.apiURL
static let apiKey: String = Singleton.sharedInstance.apiKey
static let applicationId: String = Singleton.sharedInstance.applicationId
case userPoints()
var method: Alamofire.Method
{
switch self
{
case .userPoints:
return .GET
}
}
var path: String
{
switch self
{
case .userPoints:
return "https://stackoverflow.com/users/points/user/\(Singleton.sharedInstance.user.id)"
}
}
var URLRequest: NSMutableURLRequest
{
let URL_val = URL(string: Router.baseURL)!
let mutableURLRequest = NSMutableURLRequest(URL: URL_val.URLByAppendingPathComponent(path))
mutableURLRequest.HTTPMethod = method.rawValue
// Send API key and Application ID in the header
mutableURLRequest.setValue("API-Key apiKey=\(Router.apiKey) applicationId=\(Router.applicationId)", forHTTPHeaderField: "X-Authorization")
let encoding = ParameterEncoding.URL
#if DEBUG
print(mutableURLRequest)
#endif
switch self
{
case .userPoints:
return encoding.encode(mutableURLRequest, parameters: nil).0
}
}
}
非常に有望誰かが私が準拠するソリューションを把握助けることができます変更。
事前に感謝します。
を自分のドキュメントで完全な作業例を持って答えてくれてありがとう!あなたの変更を含めるようにコードを編集できますか? .urlについては、実際に試してみましたが、コンパイラは "Type"メソッド(別名OpaquePointer)にメンバー 'get'を持っていません " – nights
メソッドを' var method:HTTPMethod'に変更する方法ルーティング要求のセクションのalamofireドキュメントに簡単に記載されています。これですべての問題が解決されない場合は、あなたが提供したコードで何か気づかなかったので、問題になるはずです。 – JustinM
ありがとう。このラインはどうですか:mutableURLRequest.setValue( "API-Key apiKey = \(Router.apiKey)applicationId = \(Router.applicationId)"、forHTTPHeaderField: "X-Authorization")は、この新しいAlamofireフロー? – nights