我已经查看了一段快速代码,尝试创建一个将对象序列化为JSON的反射函数。问题是,当我调用初始化程序以获得反射时,它会抛出一个疯狂的错误。
struct Address {
var street: String
}
struct Person {
var name: String = "Dre"
var age: Int = 33
var dutch: Bool = false
var address: Address? = Address(street: "Clark Drive")
}
// Throws an error on the next line
let mirror = Mirror(reflecting: Person) 当我试图将镜像的值设置为镜像初始化的结果时,我会得到以下错误:
知道这里会出什么问题吗?
发布于 2016-05-13 03:21:47
您需要传递一个Person实例,而不是类Person。例如:
struct Address {
var street: String
}
struct Person {
var name: String = "Dre"
var age: Int = 33
var dutch: Bool = false
var address: Address? = Address(street: "Clark Drive")
}
let person = Person()
let mirror = Mirror(reflecting: person)
print(mirror.displayStyle)
for case let (label?, value) in mirror.children {
print(label, value)
}指纹:
Optional(Struct)
name Dre
age 33
dutch false
address Optional(Address(street: "Clark Drive"))
Mirror for Bookmark发布于 2017-08-03 07:01:13
错:
func jediGreet(name: String, ability: String) -> (farewell: String, mayTheForceBeWithYou: String) {
return ("Good bye, \(name).", " May the \(ability) be with you.")
}
let retValue = jediGreet("old friend", "Force")
println(retValue)
println(retValue.farewell)
println(retValue.mayTheForceBeWithYou)正确:
func jediGreet(name: String, ability: String) -> (farewell: String, mayTheForceBeWithYou: String) {
return ("Good bye, \(name).", " May the \(ability) be with you.")
}
let retValue = jediGreet (name:"old friend",ability: "Force")
print(retValue)
print(retValue.farewell)
print(retValue.mayTheForceBeWithYou)https://stackoverflow.com/questions/37200499
复制相似问题