Property类型和功能

在OC每个类中,我们通常会根据自己的需要,添加自己需要的属性,对于我们不熟知的类和协议,我们可以通过class_copyPropertyList和protocol_copyPropertyList得到一个包含一个类所有属性的数组

objc_property_t *class_copyPropertyList(Class cls, unsigned int *outCount)

objc_property_t *protocol_copyPropertyList(Protocol *proto, unsigned int *outCount)

举个例子

@interface lender : NSObject

@property (nonatomic, strong)NSArray *nameArray;

@property (nonatomic, strong)NSString *name;

@property(nonatomic,assign) NSInteger age;

@end

id lenderClass=objc_getClass("lender");// 获取lender类

unsigned int outCount,i;

objc_property_t*properties=class_copyPropertyList(lenderClass, &outCount);//得到属性数组

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

objc_property_t property = properties[i];

fprintf(stdout, "%s %s\n", property_getName(property), property_getAttributes(property));//标准化输出,stdout 是一个系统的宏定义

}

运行结果

nameArray  T@"NSArray",&,N,V_nameArray

name  T@"NSString",&,N,V_name

age  Tq,N,V_age

你可能感兴趣的:(Property类型和功能)