要运行示例项目,首先从仓库克隆,然后在Example目录中运行pod install
pod 'Moya-Marshal'
如果您想通过RxSwift使用这些绑定,请使用子spec。
pod 'Moya-Marshal/RxSwift'
如果您想通过ReactiveSwift使用这些绑定,请使用子spec。
pod 'Moya-Marshal/ReactiveSwift'
创建一个实现了Unmarshaling
协议的Class
或Struct
。
import Foundation
import Marshal
struct User: Unmarshaling {
var id: Int
var name: String
var email: String
init(object: MarshaledObject) throws {
id = try object.value(for: "id")
name = try object.value(for: "name")
email = try object.value(for: "email")
}
}
provider
.request(.AllUsers) { result in
if case let .Success(response) = result {
do {
let argoUsers:[ArgoUser] = try response.mapArray(MarshalUser.self)
print("mapped to users: \(argoUsers)")
} catch {
print("Error mapping users: \(error)")
}
}
}
provider
.request(.AllUsers)
.mapArray(MarshalUser.self)
.observeOn(MainScheduler.instance)
.subscribeNext { users in
self.users = users
self.tableView.reloadData()
}.addDisposableTo(disposeBag)
provider
.request(.AllUsers)
.mapArray(MarshalUser.self)
.observeOn(UIScheduler())
.start { event in
switch event {
case .Next(let users):
self.users = users
self.tableView.reloadData()
case .Failed(let error):
print("error: \(error)")
default: break
}
}
欢迎反馈、问题或拉取请求!
该项目努力遵循Moya-ObjectMapper项目标准。
JARMourato, [email protected]
Moya-Marshal遵从MIT许可。查看LICENSE文件以获取更多信息。