通过以下方式调用可以获取Swift某一个类中的所有属性列表, 包括系统的类以及自定义的类
func getPropertyNames(cls: AnyClass) -> [String] {
var peopertys: [String] = []
var outCount: UInt32 = 0
guard let peopers = class_copyPropertyList(cls.self, &outCount) else { return [] }
let count:Int = Int(outCount)
for i in 0...(count-1) {
let aPro: objc_property_t = peopers[i]
let proName = String(cString: property_getName(aPro))
propertys.append(proName)
}
return propertys
}
- 1, 我们可以通过获取属性列表, 看到系统类有哪些属性, 并使用KVC去修改该属性的值
- 如果在项目中你将部分数据存储在UserDefaults 中, 那么在用户退出, 或者你的token失效的时候需要清除掉UserDefaults 的内容, 这时就可以获取属性列表, 并遍历删除该属性对应的UserDefaults中的内容
- 你可以对比这个项目,来尝试获取属性列表的一个用途->点它https://github.com/chaopengCoder/UserDefaultDemo
网友评论