加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift 通过运行时获取属性名列表

发布时间:2020-12-14 05:12:08 所属栏目:百科 来源:网络整理
导读:import UIKit ? //必须要有@objcMembers修饰符,否则获取到的成员属性为0 @objcMembers ? class Person: NSObject { ? ? var name: String? ? ? var age: Int = 0 ? ? var title: String? ?? ? ? ? class func propertyList() - [String] { ? ? ? ? var arr:

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

? ? }

?? ?

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读