EVReflection + Moya + Realm + RxSwift - не удалось создать экземпляр для типа dict

Я застрял, собирая все вышеперечисленное вместе. Буду признателен, если я получу какой-либо вклад.

Вот моя короткая установка:

typealias RealmObject = Object

/// Extension to ignore undefined keys when mapping
extension RealmObject : EVReflectable {
    open override func setValue(_ value: Any?, forUndefinedKey key: String) { }
}

Примеры моделей Realm:

class Product: RealmObject {

    dynamic var productId: String = ""  
    let productLanguages = List<ProductLanguage>()

    override static func primaryKey() -> String? {
        return "productId"
    }
}

class ProductLanguage: RealmObject {

    dynamic var productLanguageId: String = ""
    dynamic var languageCode: String = ""
    dynamic var productName: String = ""

    override static func primaryKey() -> String? {
        return "productLanguageId"
    }
}

Для получения информации о продукте я использую Moya и RxSwift:

func getProduct(productItemKey: String) -> Observable<Product> {
    return provider.request(.product(productId: productItemKey)).map(to: Product.self)
}

Я думаю, что .map(to: Product.self) не работает со списками сфер из коробки. Для каждого объекта в списке я получаю сообщение об ошибке:

ERROR: Could not create an instance for type 
dict:{
    CreateDate = "2015-10-12T11:11:50.013Z";
    IngredientList = "Acao ingredient";
    LanguageCode = "en-US";
    ProductId = "d6bb0084-6838-11e5-9225-00ac14ef2300";
    ProductLanguageId = "f96848d0-df77-4594-99b7-d390bb127891";
    ProductName = Acao;
    Tagline = "The smart drink - 100% organic, vegan energy booster with guara"
}

Есть ли другой способ сопоставить ответ Мойи с объектами Realm?

Большое спасибо за любой вклад!


person Andrej Jurkin    schedule 19.07.2017    source источник


Ответы (1)


Оказывается, это ошибка в EVReflection. Исправлено в 4.17.0

person Andrej Jurkin    schedule 06.09.2017