Moya-ObjectMapper 2.9

Moya-ObjectMapper 2.9

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2020年1月
SPM支持 SPM

Ivan BruelBruno Oliveira 维护。



Moya-ObjectMapper

CocoaPods Swift 4.2

ObjectMapperMoya 提供的绑定,用于更简单的 JSON 序列化。还包括 RxSwift 绑定。

安装

CocoaPods

pod 'Moya-ObjectMapper'

如果要在 RxSwift 上使用绑定,可以尝试子规范。

pod 'Moya-ObjectMapper/RxSwift'

如果要在 ReactiveSwift 上使用绑定,可以尝试子规范。

pod 'Moya-ObjectMapper/ReactiveSwift'

用法

创建一个实现 Mappable 协议的 ClassStruct

import Foundation
import ObjectMapper

// MARK: Initializer and Properties
struct Repository: Mappable {

  var identifier: Int!
  var language: String?
  var url: String!

  // MARK: JSON
  init?(map: Map) { }

  mutating func mapping(map: Map) {
    identifier <- map["id"]
    language <- map["language"]
    url <- map["url"]
  }

}

1. 不使用 RxSwift 和 ReactiveSwift

GitHubProvider.request(.userRepositories(username), completion: { result in

    var success = true
    var message = "Unable to fetch from GitHub"

    switch result {
    case let .success(response):
        do {
            if let repos = try response.mapArray(Repository) {
              self.repos = repos
            } else {
              success = false
            }
        } catch {
            success = false
        }
        self.tableView.reloadData()
    case let .failure(error):
        guard let error = error as? CustomStringConvertible else {
            break
        }
        message = error.description
        success = false
    }
})

2. 使用 RxSwift

GitHubProvider.request(.userRepositories(username))
  .mapArray(Repository.self)
  .subscribe { event -> Void in
    switch event {
    case .next(let repos):
      self.repos = repos
    case .error(let error):
      print(error)
    default: break
    }
  }.addDisposableTo(disposeBag)

2. 使用 ReactiveSwift

GitHubProvider.request(.userRepositories(username))
  .mapArray(Repository.self)
  .start { event in
    switch event {
    case .value(let repos):
      self.repos = repos
    case .failed(let error):
      print(error)
    default: break
    }
  }

贡献代码

问题报告和拉取请求欢迎!

作者

Ivan Bruel @ivanbruel

维护者

Bruno Oliveira @bmoliveira

许可证

Moya-ObjectMapper 以 MIT 许可证发布。有关更多信息,请参阅 LICENSE 文件。