0

我正在用 Swift 开发一个 iOS 项目。我使用Moya框架进行 API 处理和解析。它完美地工作。但是,当我尝试解析字符串以外的变量时,它会显示错误:

“调用中缺少参数‘转换’的参数”

这是我的映射器类

import Mapper

class MyMapperClaa:Mappable {
    var dateVariable: NSDate?

    required init(map: Mapper) throws{
        try dateVariable = map.from("date")
    }
}
4

2 回答 2

2

为 Date 创建了一个扩展名,它对我有用

extension Date:Convertible
{
    public static func fromMap(_ value: Any) throws -> Date {
        guard let rawDate = value as? String else {
            throw MapperError.convertibleError(value: value, type: Date.self)
        }
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd"

        if let date = dateFormatter.date(from: rawDate)  {
            return date
        } else {
            throw MapperError.convertibleError(value: value, type: Date.self)
        }


    }

}

于 2017-12-06T07:00:56.797 回答
1

抱歉,您正在使用此库:https ://github.com/lyft/mapper 。从那里的例子:

private func extractDate(object: Any?) throws -> Date {
  guard let rawDate = object as? String else {
    throw MapperError.convertibleError(value: object, type: Date.self)
  }
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "your date format"

    if let date = dateFormatter.date(from: rawDate)  {
        return date
    } else {
      throw MapperError.convertibleError(value: object, type: Date.self)
    }

}

struct DateModel: Mappable {
  let date: Date

  init(map: Mapper) throws {
    try date = map.from("date", transformation: extractDate)
  }
}
于 2017-12-06T04:15:24.620 回答