我有一个带有几个方法和属性的父类:
class Animal {
var var1: ...
var var2: ...
func func1() {}
func func2() {}
}和Child类:
class Dog: Animal, Codable {
var name = ""
}我需要向父类添加一个方法,它将返回子类的JSONEncoder().encode结果。类似于:
let dog = Dog()
dog.name = "Bob"
let jsonString = dog.jsonString() // {"name":"Bob"}我能这么做吗?
发布于 2018-08-02 17:01:20
只需使用encode…的结果创建一个String
extension Encodable {
func jsonString() -> String {
let data = try! JSONEncoder().encode(self)
return String(data: data, encoding: .utf8)!
}
}
let dog = Dog()
dog.name = "Bob"
dog.jsonString()
// {"name":"Bob"}https://stackoverflow.com/questions/51649502
复制相似问题