我有一个叫做User的类:
import UIKit
import ObjectMapper
class User: NSObject, CustomStringConvertible, Mappable {
var FirstName: NSString! ;
var LastName: NSString! ;
required init?(_ map: Map){
}
func mapping(map: Map) {
FirstName <- map["FirstName"]
LastName <- map["LastName"]
}
override var description:String {
var s:String=""
//USE REFLECTION TO GET NAME AND VALUE OF DATA MEMBERS
for var index=1; index<reflect(self).count; ++index {
s += (reflect(self)[index].0 + ": "+reflect(self)[index].1.summary+"\t")
}
return s
}
}
在Swift 1.2中,我使用reflect()方法获取所有数据成员及其名称和值的数组。
现在,我升级到Swift 2后,出现以下错误:
'reflect'不可用:调用'Mirror(reflecting:)'初始化程序
经过一些尝试,我能够通过以下方式获取数据成员的数量:
Int(Mirror(reflecting: self).children.count)
,但仍然无法获取成员名称及其值。我已查阅了以下资源:
更新 我在这里找到了答案:https://stackoverflow.com/a/32846514/4959077。但是这并没有说明如何找出反射值的类型。如果该值为int并将其解析为String,则会出现错误。