有没有办法让指针/变量的名称为字符串?
...即
NSNumber* aNumber;
int anInt;
NSString* name = aFunctionThatDoesWhatIAskedFor(aNumber);
NSLog(@"%@",name); //should print "aNumber";
name = aFunctionThatDoesWhatIAskedFor(anInt);
NSLog(@"%@",name); //should print "anInt";
答案 0 :(得分:3)
定义此宏
#define nameOfVariable(x) NSLog( @"%s",#x)
使用此宏
nameOfVariable(aNumber);
nameOfVariable(anInt);
<强>解释强>
#之前的参数名称称为 Stringification 。您可以使用'#'运算符对变量参数进行字符串化或将其标记粘贴到另一个标记。
有时您可能希望将宏参数转换为字符串 不变。参数不会在字符串常量内替换,但是你 可以使用
#' preprocessing operator instead. When a macro parameter is used with a leading
#',预处理器将其替换为 实际参数的文字文本,转换为字符串常量。 与普通参数替换不同,参数不是 首先是宏观扩张。这称为 stringification 。
答案 1 :(得分:0)
在大多数编程语言中,对象没有名称。