Skip to content

Commit

Permalink
wrapping
Browse files Browse the repository at this point in the history
  • Loading branch information
CNKCQ committed Nov 16, 2017
1 parent 5313539 commit d6db170
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 22 deletions.
57 changes: 39 additions & 18 deletions Example/AlamofireCodable/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ViewController: UIViewController {
}

@IBAction func objectRequest(_ sender: Any) {
let form = WeatherForm()
let form = WeatherForm<Weather>()
Alamofire.request(
form.url,
method: HTTPMethod.get,
Expand All @@ -37,7 +37,7 @@ class ViewController: UIViewController {
}

@IBAction func arrayRequest(_ sender: Any) {
let form = WeatherForm()
let form = WeatherForm<Forecast>()
Alamofire.request(
form.url,
method: HTTPMethod.get,
Expand All @@ -59,22 +59,43 @@ class ViewController: UIViewController {
}

@IBAction func nestedRequest(_ sender: Any) {
let form = WeatherForm()
let form = WeatherForm<RootModel>()
requestFrom(form) { (response) in
debugPrint("🌹-- 来了", response)
}
// Alamofire.request(
// form.url,
// method: HTTPMethod.get,
// parameters: form.parameters(),
// encoding: form.encoding(),
// headers: form.headers()
// )
// .responseObject(completionHandler: { (response: DataResponse<RootModel>) in
// switch response.result {
// case .success(let root):
// debugPrint("🌹", root)
// case .failure(let error):
// debugPrint("🌹", error.localizedDescription)
// }
// })
}

func requestFrom<T: Codable>(_ form: WeatherForm<T>, success: @escaping (_ result: T) -> Void ) {
Alamofire.request(
form.url,
method: HTTPMethod.get,
parameters: form.parameters(),
encoding: form.encoding(),
headers: form.headers()
)
.responseObject(completionHandler: { (response: DataResponse<RootModel>) in
switch response.result {
case .success(let root):
debugPrint("🌹", root)
case .failure(let error):
debugPrint("🌹", error.localizedDescription)
}
})
form.url,
method: HTTPMethod.get,
parameters: form.parameters(),
encoding: form.encoding(),
headers: form.headers()
).responseObject(completionHandler: { (response: DataResponse<T>) in
switch response.result {
case .success(let root):
// debugPrint("🌹", root)
success(root)
case .failure(let error):
debugPrint("🌹", error.localizedDescription)
}
})
}

override func didReceiveMemoryWarning() {
Expand Down Expand Up @@ -107,7 +128,7 @@ struct Forecast: Codable {
var temperature: Int64
}

struct WeatherForm {
struct WeatherForm<T: Codable> {

var city = "shanghai"

Expand Down
2 changes: 1 addition & 1 deletion Example/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
Alamofire: 2d95912bf4c34f164fdfc335872e8c312acaea4a
AlamofireCodable: 3f1a446766088e826904b169063f85b7b65c8c79
AlamofireCodable: e4a60710ed4c1beaec830e8912425b2bceb28a14
FBSnapshotTestCase: 094f9f314decbabe373b87cc339bea235a63e07a
Nimble: bfe1f814edabba69ff145cb1283e04ed636a67f2
Nimble-Snapshots: f5459b5b091678dc942d03ec4741cacb58ba4a52
Expand Down
22 changes: 22 additions & 0 deletions Example/Pods/Local Podspecs/Alamofire.podspec.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Example/Pods/Local Podspecs/AlamofireCodable.podspec.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Example/Pods/Manifest.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit d6db170

Please sign in to comment.