如果我有这样的课程:
@interface Fields : NSObject {
@public
NSString* location;
NSString* keywords;
}
@end
我不仅可以访问位置和值的值吗?关键字还有这些变量的名称?即“位置”和“关键词”?这些名称将在计算机之间传递,不会显示给用户。
或者......我是否使用字典并将代码和数据分开?
答案 0 :(得分:1)
您可以使用class_copyIvarList
获取课程的ivars列表。
例如:
unsigned int count = 0;
Ivar* ivars = class_copyIvarList([self class], &count);
for(int i = 0; i < count; ++i) {
NSLog(@"%@::%s", NSStringFromClass([self class]), ivar_getName(ivars[i]));
}
free(ivars);