我可以在Objective C中访问实例变量的名称吗?

时间:2014-01-17 17:51:57

标签: objective-c

如果我有这样的课程:

@interface Fields : NSObject {
@public
NSString* location;
NSString* keywords;
}
@end

我不仅可以访问位置和值的值吗?关键字还有这些变量的名称?即“位置”和“关键词”?这些名称将在计算机之间传递,不会显示给用户。

或者......我是否使用字典并将代码和数据分开?

1 个答案:

答案 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);