最近开发过程中遇到了获取对象的所有属性以及设置属性值的问题,经过一番研究,最终实现了这个功能
直接上代码
extension NSObject{
/**
- returns: 属性的值
*/
func getValueOfProperty(property:String)->AnyObject?{
let allPropertys = self.getAllPropertys()
if(allPropertys.contains(property)){
return self.valueForKey(property)
}else{
return nil
}
}
/**
设置对象属性的值
- 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
}
}
/**
*/
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。