Swift 通过运行时获取属性名列表
import UIKit ? //必须要有@objcMembers修饰符,否则获取到的成员属性为0 @objcMembers ? class Person: NSObject { ? ? var name: String? ? ? var age: Int = 0 ? ? var title: String? ?? ? ? ? class func propertyList() -> [String] { ? ? ? ? var arr: [String] = [] ? ? ? ? var count: UInt32 = 0 ? ? ? ? let list = class_copyPropertyList(self,&count) ? ? ? ? print("参数的长度为(count)") ? ? ? ? for i in 0..<Int(count) { ? ? ? ? ? ? let pty = list?[i] ? ? ? ? ? ? //得到C字符串 ? ? ? ? ? ? let cName = property_getName(pty!) ? ? ? ? ? ? //将C字符串转化为String ? ? ? ? ? ? let name = String(utf8String: cName) ? ? ? ? ? ? arr.append(name!) ? ? ? ? } ? ? ? ? return arr ? ? } ?? ? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |