假设我有一些包含数据结构的类:
classA:
@property(strong)NSString *name;
@property(strong)NSString *place;
@property(strong)NSString *age;
我创建classA
的实例并将其传递给其他classB
,此classB
应将所有A's
值保存到内存中(例如用户默认值) )。
classB
如何将classA
作为参数,而不知道其中包含哪些属性,只需遍历所有属性并将其保存到内存中?
目标是在classA
没有B
的情况下添加和删除B
中的项目,但{{1}}可以循环播放并保存它们。(不使用单个数组)在A)
答案 0 :(得分:2)
根据this Apple Documentation,您可以这样做。
您必须导入运行时框架,如下所示
#import <objc/runtime.h>
id LenderClass = objc_getClass("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));
}
// This class_copyPropertyList will do that purpose.
objc_property_t *properties = class_copyPropertyList(LenderClass, &outCount);