2017-03-27 43 views
2

我有以下迁移从SWIFT 2.3至3.0的无效类型在JSON写入

class :class JsonDomain : EVObject { 
    func jsonValue() -> NSDictionary { 
     return self.toDictionary() 
    } 
} 

class TokenValor :JsonDomain { 
    var to : Token! 
    var valor : NSDecimalNumber = 0 

    convenience init(to : Token?, valor : NSDecimalNumber?) { 
     self.init() 
     self.to = to! 
     self.valor = getOptionalDecimalValue(valor) 
    } 

    override func jsonValue() -> NSDictionary { 
     let cifrado = Token() 
     cifrado.chave = CryptService.cifrar(to.chave) 
     let tokenValor = TokenValor(to: cifrado, valor: self.valor) 
     return tokenValor.toDictionary() 
    } 


    override func getValidationsArray() -> JsonTypeValidation { 
     return [("to","Token"),("valor", "Valor")] 
    } 
} 

并且该方法jsonValue()被返回我:

{
        to =“Token = {\ n”chave“:”-100; 7 6; -79; 81; 81; -18; 76; 23; “\ N}”;
        valor = 50;
}

这是给我下面的错误:“终止应用程序由于未捕获的异常‘NSInvalidArgumentException’,原因:‘无效的类型JSON写(MyApp.Token)’”

目前我使用Swift 3,EvReflection与分支“Swift3”和SwiftyJSON 3.1.4。 在使用雨燕2.3的版本EvReflection 2.6没有给这个错误

感谢关注

回答

1

我刚刚更新EVReflection到主分支。我将我的代码更改为:

class TokenValor : JsonDomain 
{ 
    var to : Token? 
    var valor : NSDecimalNumber = 0 

    convenience init(to : Token, valor : NSDecimalNumber?) { 
     self.init() 
     self.to = to 
     self.valor = getOptionalDecimalValue(valor) 
    } 

    override func jsonValue() -> NSDictionary { 
     let cifrado = Token() 
     cifrado.chave = CryptService.cifrar((to?.chave)!) 
     let tokenValor = TokenValor(to: cifrado, valor: self.valor) 
     return tokenValor.toDictionary() 
    } 


    override func getValidationsArray() -> JsonTypeValidation { 
     return [("to","Token"),("valor", "Valor")] 
    } 
} 
相关问题