¿AlamofireObjectMapper / ObjectMapper admite la asignación de tipo de estructura?

Estoy usando AlamofireObjectMapper para analizar la respuesta json a mi object. El AlamofireObjectMapper es una extensión de ObjectMapper .

Según sus documentos, mi class model debe cumplir con el protocolo Mappable . Por ejemplo:

 class Forecast: Mappable { var day: String? var temperature: Int? var conditions: String? requinetworking init?(_ map: Map){ } func mapping(map: Map) { day <- map["day"] temperature <- map["temperature"] conditions <- map["conditions"] } } 

Para cumplir con el prototipo Mappable, mi class model debe implementar el inicializador requerido y la function de mapeo para cada campo. Que tiene sentido.

PERO, ¿cómo admite el tipo struct ? Por ejemplo, tengo una estructura de Coordinate , bash cumplir con el protocolo Mappable :

 struct Coordinate: Mappable { var xPos: Int var yPos: Int // ERROR: 'requinetworking' initializer in non-class type requinetworking init?(_ map: Map) {} func mapping(map: Map) { xPos <- map["xPos"] yPos <- map["yPos"] } } 

No puedo hacer que mi Coordinate ajuste a la Mapa, debido al error que muestro arriba.

(Creo que es muy a menudo que usar struct para coordinar datos en lugar de usar la class )

Mis preguntas :

P1. ¿La biblioteca AlamofireObjectMapper o ObjectMapper admite el tipo struct ? ¿Cómo usarlos para analizar la respuesta json a un object de tipo struct ?

P2. Si esas bibliotecas no admiten el análisis de la respuesta json a un object de tipo struct. ¿Cuál es la forma de hacerlo en iOS con Swift2?

El protocolo mapeable se define así

 public protocol Mappable { init?(_ map: Map) mutating func mapping(map: Map) } 

Tienes que implementarlo en consecuencia:

 struct Coordinate: Mappable { var xPos: Int? var yPos: Int? init?(_ map: Map) { } mutating func mapping(map: Map) { xPos <- map["xPos"] yPos <- map["yPos"] } } 

o

 struct Coordinate: Mappable { var xPos: Int var yPos: Int init?(_ map: Map) { } mutating func mapping(map: Map) { xPos <- map["xPos"] ?? 0 yPos <- map["yPos"] ?? 0 } } 

El constructor no se puede marcar como se requiere porque struct no se puede henetworkingar. la function de mapeo tiene que marcarse como mutante porque muta los datos almacenados en la estructura …