같은 프로토콜을 따르는 두 객체간에 매핑하고 싶습니다. 서명 기능을 통해 그렇게 편리 할 것입니다 : 더 나은프로토콜 준수 유형 간 신속한 매핑
func mapFrom<T>(objectA: T, to inout objectB: T)
하지만 (불변 유형) 형태로 그것을 가지고하는 것입니다 :
func map<T, U: T>(from source: T) -> U
가 초기화 할 수 어떻게 든 a U
T
의 값에서 오브젝트.
Objective-C
런타임을 사용하는 대신 Swift Reflection을 통해이 작업을 수행하고 싶습니다. 그러나 이것이 유일한 방법 인 경우이를 해결할 것입니다. 어쨌든 그것은 반사없이 이루어질 수 있다면 놀랄 것입니다. 그러나 나는 어떻게 보이지 않습니다.
내가 원하는 이유는 각각의 프로토콜을 준수하는 변경할 수있는 영역 클래스가 있고이를 immutable struct 유형에 매핑하려고하기 때문입니다.
예제는 다음과 같습니다
/**
The protocol.
*/
protocol Food {
var name: String { get }
var weight: Float { get }
var price: Float { get }
}
/**
The mutable Realm class representation.
*/
final class FoodEntity: Object, Food {
dynamic var name = ""
dynamic var weight = 0.0
dynamic var price = 0.0
}
/**
The final struct I want to map to from the Realm representation.
*/
struct FoodProduct: Food {
let name: String
let weight: Float
let price: Float
}
나는 일반적인 기능 또는 수동으로 같은 것을 할 필요없이
FoodProduct
에
FoodEntity
를 매핑하는 데 사용할 방법을 가질 수 있도록하고 싶습니다
:
을 FoodProduct(name: entity.name, weight: entity.weight, price: entity.price)
전혀 완료 할 수 있다면 어떻게 할 수 있습니까?
귀하의 질문은 너무 혼란 스럽습니다. 편집하십시오. –
시작하는 데 도움이 될 수 있습니다. http://stackoverflow.com/a/24069875/3141234 – Alexander