2017-03-27 68 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")] 
    } 
}