Swift 3.0 运行时获取类属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 3.0 运行时获取类属性相关的知识,希望对你有一定的参考价值。
在OC中,没有绝对的私有,用运行时可以取出。
在Swift中,有绝对的私有,用private修饰的,是无法取出的。
以下是Swift获取类属性的方法:
//
// Person.swift
//
import UIKit
class Person: NSObject {
var name: String?
var age:Int = 0
private var title: String?
class func propertyList( ) {
var count: UInt32 = 0
let list = class_copyPropertyList(self, &count)
for i in 0..<Int(count) {
let pty = list?[i]
let cName = property_getName(pty)
let name = String(utf8String: cName!)
print(name)
}
free(list)
}
}
//在控制器中调用
// ViewController.swift
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Person.propertyList()
}
}
输出结果:
Optional("name")
Optional("age")
以上是关于Swift 3.0 运行时获取类属性的主要内容,如果未能解决你的问题,请参考以下文章