国产探花免费观看_亚洲丰满少妇自慰呻吟_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 [];    }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永春县| 丰都县| 阜康市| 昌平区| 遂昌县| 云霄县| 镇巴县| 衡南县| 寻乌县| 乌拉特后旗| 勃利县| 江北区| 岐山县| 南宫市| 耒阳市| 比如县| 扶绥县| 长宁县| 远安县| 赣州市| 互助| 芒康县| 南汇区| 呈贡县| 孝感市| 泾川县| 宣恩县| 双城市| 温州市| 丰顺县| 怀化市| 江陵县| 射阳县| 沧州市| 周至县| 梧州市| 镇康县| 新河县| 黄骅市| 成安县| 鄂温|