如何将变量名转换为字符串?

例:

由此:

NSString *someVariable
int otherVariable


我想获得一个NSString的实际名称,无论它是什么类型。
因此,对于上述两个变量,我想获取它们的名称(someVariable,otherVariable)。

最佳答案

我设法用以下代码片段解决了我的问题:

导入objc运行时
#import <objc/runtime.h>

您可以使用以下方法枚举属性:

- (NSArray *)allProperties
{
    unsigned count;
    objc_property_t *properties = class_copyPropertyList([self class], &count);

    NSMutableArray *rv = [NSMutableArray array];

    unsigned i;
    for (i = 0; i < count; i++)
    {
        objc_property_t property = properties[i];
        NSString *name = [NSString stringWithUTF8String:property_getName(property)];
        [rv addObject:name];
    }

    free(properties);

    return rv;
}


希望它能帮助某人。

关于objective-c - 将变量名转换为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12784641/

10-10 05:15