举例:

首先定义TestModel如下:

@interface TestModel : NSObject

@property (nonatomic, strong) NSString *name;

@property (nonatomic, strong) NSString *desc;

@property (nonatomic, assign) int age;

@end

然后在viewControl中viewDidLoad中添加如下代码

TestModel *model = [[TestModel alloc] init];

model.name = @"Jack";

model.age = 30;

model.desc = @"some thing right";

unsigned int outCount, i;

objc_property_t *properties = class_copyPropertyList([model class], &outCount);

for (i=0; i<outCount; i++) {

objc_property_t property = properties[i];

const char *propertyName =  property_getName(property);

const char *propertyAttribute =  property_getAttributes(property);

NSString  *name=[NSString  stringWithCString:propertyName

encoding:NSUTF8StringEncoding];

NSString  *attribute=[NSString  stringWithCString:propertyAttribute

encoding:NSUTF8StringEncoding];

id value = [model valueForKey:[NSString stringWithUTF8String:propertyName]];

NSString * key = [[NSStringalloc]initWithCString:property_getName(property) encoding:NSUTF8StringEncoding];

NSLog(@"%@==%@\n",name,attribute);

NSLog(@"property[%d]:%@  value:%@\n", i, key, value);

}

执行结果如下:

2014-03-01 05:35:38.560 snippet[7267:70b] name==T@"NSString",&,N,V_name

2014-03-01 05:35:38.562 snippet[7267:70b] property[0]:name  value:Jack

2014-03-01 05:35:38.562 snippet[7267:70b] desc==T@"NSString",&,N,V_desc

2014-03-01 05:35:38.563 snippet[7267:70b] property[1]:desc  value:some thing right

2014-03-01 05:35:38.563 snippet[7267:70b] age==Ti,N,V_age

2014-03-01 05:35:38.564 snippet[7267:70b] property[2]:age  value:30

欢迎光临~~

Object-C反射读取实体属性和值的更多相关文章

  1. .net 读取实体属性和描述注释

    .net 读取实体属性和描述注释 class Program { static void Main(string[] args) { TEST test = new TEST(); test.MyNa ...

  2. C# 反射 设置实体属性

    C# 反射 设置实体属性 http://blog.csdn.net/cestarme/article/details/6548126 C#反射设置属性值和获取属性值 http://www.cnblog ...

  3. java反射对实体类取值和赋值

    public static void checkDesignerEdit(Object dtos) throws Exception { Class dtosClass = dtos.getClass ...

  4. C#中使用反射遍历一个对象属性和值以及百分数

    对某个类的实例化对象, 遍历获取所有属性(子成员)的方法(采用反射): using (var context = new YZS_TRAEntities()) { ).FirstOrDefault() ...

  5. java反射对实体类取值和赋值,可以写成通过实体类获取其他元素的数据,很方便哦~~~

    项目中需要过滤前面表单页面中传过来的实体类的中的String类型变量的前后空格过滤,由于前几天看过一个其他技术博客的的java反射讲解,非常受益.于是,哈哈哈 public static <T& ...

  6. C# 并行 反射 去掉实体属性多余空格

          有时会遇到很多不合理的数据附件到实体后有大量空格需要处理,这里提供一个方法,通过并行反射的方式高效清理空格.   Code: //清除字符串空格 public static object ...

  7. C# -- 把json字符串转为对象并读取各属性的值

    前面2种方法是不需要声明一个Json字符串的类型即可把Json字符串转换为Dictionary对象 而第3种方法则是声明一个Json字符串的强类型对象,然后反序列化为该对象的数据. List<, ...

  8. js为一个对象Object添加一个新的属性和值

    1, var obj = {}; //或者 var obj=new Object(); var key = "name"; var value = "张三丰" ...

  9. EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态

    本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject ...

随机推荐

  1. hadoop编码问题,mapreduce中Tex与string的转化 乱码问题

    引用:http://blog.csdn.net/zklth/article/details/11829563 Hadoop处理GBK文本时,发现输出出现了乱码,原来HADOOP在涉及编码时都是写死的U ...

  2. CodeChef - ELHIDARR Find an element in hidden array(二分交互)

    Find an element in hidden array There is an array of length N consisting of non-negative integers. T ...

  3. mui 关闭当前窗口

    在提交表单的时候,我们都需要关闭表单.需要关闭当前打开的窗口. bit.alert('提交成功' + (result.category.needAudit ? ",请耐心等待管理员审核信息后 ...

  4. VisualStudio2017中新建的ASP.NET Core项目中的各个文件的含义

     Program.cs is the entry point for the web application; everything starts from here. As we mentione ...

  5. 脚本执行JavaScript代码

    下面是一个具体的demo测试脚本引擎,执行javas文件. package Rhino; import java.io.FileReader;import java.net.URL; import j ...

  6. poj2528(线段树区间替换&离散化)

    题目链接: http://poj.org/problem?id=2528 题意: 第一行输入一个 t 表 t 组输入, 对于每组输入: 第一行  n 表接下来有 n 行形如 l, r 的输入, 表在区 ...

  7. spring eureka 启动过程

    spring-eureka 在springCloud是类似于 zookeeper的存在,主要负责服务的注册发现. 1   由于是Servlet应用,所以Eureka需要通过servlet的相关监听器  ...

  8. java 文件相关问题

    1.文件路径 分隔符 System.out.println(File.separator); System.out.println(File.pathSeparator); /*mac os 和 li ...

  9. MyEclipse 2016CI破解版for Mac

    网上的教程很多,一开始怎么都不行,就是不行,也是如此操作,可能是注册机失效了还是怎样,数个小时过去了,我综合了网上的资源,终于OK啦!(我会在文后给出jar 包,注册机的破解文件,以及MyEclips ...

  10. IBM WebSphere MQ

    相关链接: http://kakajw.iteye.com/category/269774 http://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_7 ...