国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Swift3.0--運行時加載屬性列表

2019-11-09 15:43:39
字體:
來源:轉載
供稿:網友
import UIKitclass Person: NSObject {    var name: String?;    var age: Int = 0;    var title: String?;    //PRivate,在運行時同樣獲取不到屬性,(可以獲取到ivar),同樣會讓KVC崩潰    //    private var title: String?;            // 目標:獲取當前類所有屬性的數組,使用運行時    class func propertyList () -> [String] {                //1.獲取類的屬性列表        var count: UInt32 = 0;                let list = class_copyPropertyList(self, &count);                //2.遍歷數組//        for i in 0..<Int(count) {//            //            //3.根據下標獲取屬性//            //objc_property_t//            let pty = list?[i];//            //            //4.獲取屬性的名稱 - c語言字符串//            // <Int8> -> c語言的字符串//            let cname = property_getName(pty!);//            //            //5.轉換成oc的字符串//            let name = String(utf8String: cname!);//            //            print(name ?? "");//            //        }                        for i in 0..<Int(count) {                        //3.根據下標獲取屬性            //使用 guard 語法,以此判斷是否有值,只要有一項為nil,就不再執行后續代碼            guard let pty = list?[i],                  let cname = property_getName(pty),                  let name = String(utf8String: cname)            else {                //繼續下一個循環                continue;            }                        //name是一定有值的            print(name);                    }                        //6.釋放c 的對象        free(list);                print("屬性的數量: /(count)");                return [];    }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永嘉县| 睢宁县| 开江县| 满洲里市| 临桂县| 瓦房店市| 临猗县| 临高县| 广西| 莱芜市| 呼和浩特市| 津市市| 沿河| 雅安市| 永川市| 荔波县| 徐水县| 太原市| 庄河市| 专栏| 汝城县| 延边| 石楼县| 木里| 兴安县| 松桃| 高邑县| 宜兴市| 蒲江县| 闽清县| 双桥区| 界首市| 高淳县| 扶风县| 大新县| 辽宁省| 绥滨县| 沙雅县| 嘉义县| 昌平区| 文化|