У меня возникли проблемы с де-сериализацией и сериализацией вложенной модели в Swift с использованием мантии. Я считаю, что все правильно настроено, но я не могу даже пройти мимо ошибок компиляции. Чтобы дать некоторую перспективу, я успешно преобразовал классы, у которых нет вложенных объектов модели. Вот мой класс:Мантия - преобразование вложенной модели в Swift
class TheClass : MTLModel, MTLJSONSerializing
{
var person:Person?
static func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject]!
{
return ["person" : "person"]
}
static func personJSONTransformer() -> NSValueTransformer!
{
return MTLValueTransformer.reversibleTransformerWithForwardBlock(
{ (person:[NSObject : AnyObject]!) -> AnyObject! in
do
{
return MTLJSONAdapter.modelOfClass(Person.self, fromJSONDictionary: person)
}
catch
{
return Person()
}
},
reverseBlock:
{ (person:Person) -> AnyObject! in
return MTLJSONAdapter.JSONDictionaryFromModel(person)
})
}
}
Этот код не компилируется, и я не могу его скомпилировать. Вот сообщение об ошибке я получаю:
Cannot convert return expression of type 'AnyObject!' to expected return type 'Person'
Я попытался изменить тип возвращаемого обратного блока Person
и Person!
, но я получаю то же сообщение об ошибке. Я долгое время боролся с этим и не мог найти рабочий пример в Swift, поэтому любая помощь была бы высоко оценена.