swift 获取类的所有属性、获取对象的属性值、设置对象的属性值
最近开发过程中遇到了获取对象的所有属性以及设置属性值的问题,经过一番研究,最终实现了这个功能 直接上代码 extension NSObject{
/** 获取对象对于的属性值,无对于的属性则返回NIL
- parameter property: 要获取值的属性 - returns: 属性的值 */ func getValueOfProperty(property:String)->AnyObject?{ let allPropertys = self.getAllPropertys() if(allPropertys.contains(property)){ return self.valueForKey(property) }else{ return nil } }
/** 设置对象属性的值 - parameter property: 属性 - parameter value: 值 - returns: 是否设置成功 */ func setValueOfProperty(property:String,value:AnyObject)->Bool{ let allPropertys = self.getAllPropertys() if(allPropertys.contains(property)){ self.setValue(value,forKey: property) return true
}else{ return false } }
/** 获取对象的所有属性名称 - returns: 属性名称数组 */ func getAllPropertys()->[String]{
var result = [String]() let count = UnsafeMutablePointer<UInt32>.alloc(0) let buff = class_copyPropertyList(object_getClass(self),count) let countInt = Int(count[0])
for(var i=0;i<countInt;i++){ let temp = buff[i] let tempPro = property_getName(temp) let proper = String.init(UTF8String: tempPro) result.append(proper!)
}
return result } } 如有问题欢迎随时联系我 ———— LC (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |