P. *_*ami 5 reflection ios swift
所以,假设我有一个这样的类:
class Employee: NSObject {
var id: String?
var someArray: [Employee]?
}
Run Code Online (Sandbox Code Playgroud)
我使用反射来获取属性名称:
let employee = Employee()
let mirror = Mirror(reflecting: employee)
propertyNames = mirror.children.flatMap { $0.label }
// ["businessUnitId", "someArray"]
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好!现在我需要能够找出每个属性的类型,所以如果我这样做employee.valueForKey("someArray"),它将无法工作,因为它只给我AnyObject类型.最好的方法是什么?特别是对于数组,我需要能够动态地告诉数组包含类型Employee.
Luc*_*tti 14
你不需要继承NSObject(除非你有充分的理由).
class Employee {
var id: String?
var someArray: [Employee]?
}
let employee = Employee()
for property in Mirror(reflecting: employee).children {
print("name: \(property.label) type: \(type(of: property.value))")
}
Run Code Online (Sandbox Code Playgroud)
产量
name: Optional("id") type: Optional<String>
name: Optional("someArray") type: Optional<Array<Employee>>
Run Code Online (Sandbox Code Playgroud)
这也适用于Structs
| 归档时间: |
|
| 查看次数: |
4424 次 |
| 最近记录: |