Moya-Marshal 1.3.1

Moya-Marshal 1.3.1

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2017年11月
SwiftSwift版本3.0
SPM支持SPM

JARM维护。



Moya-Marshal

CocoaPods
Swift 3.0.x

CI Status
Version
License
Platform

示例

要运行示例项目,首先从仓库克隆,然后在Example目录中运行pod install

安装

CocoaPods

pod 'Moya-Marshal'

如果您想通过RxSwift使用这些绑定,请使用子spec。

pod 'Moya-Marshal/RxSwift'

如果您想通过ReactiveSwift使用这些绑定,请使用子spec。

pod 'Moya-Marshal/ReactiveSwift'

用法

创建一个实现了Unmarshaling协议的ClassStruct

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")
  }
}

Moya的响应映射

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)")
            }
        }
    }

RxSwift

provider
    .request(.AllUsers)
    .mapArray(MarshalUser.self)
    .observeOn(MainScheduler.instance)
    .subscribeNext { users in
        self.users = users
        self.tableView.reloadData()
    }.addDisposableTo(disposeBag)

ReactiveSwift

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文件以获取更多信息。