1

有没有办法以字符串形式询问指针/变量的名称?

IE..

NSNumber* aNumber;
int anInt;

NSString* name = aFunctionThatDoesWhatIAskedFor(aNumber);
NSLog(@"%@",name); //should print "aNumber";

name = aFunctionThatDoesWhatIAskedFor(anInt);
NSLog(@"%@",name); //should print "anInt";
4

2 回答 2

3

定义这个宏

#define nameOfVariable(x) NSLog( @"%s",#x)

使用这个宏

nameOfVariable(aNumber);
nameOfVariable(anInt);

解释:

# 前面的参数名称称为Stringification。您可以使用“#”运算符对变量参数进行字符串化或将其标记与另一个标记一起粘贴。

有时您可能希望将宏参数转换为字符串常量。参数不会在字符串常量中被替换,但您可以使用#' preprocessing operator instead. When a macro parameter is used with a leading#',预处理器将其替换为实际参数的文字文本,转换为字符串常量。与普通参数替换不同,参数不是首先进行宏扩展的。这称为字符串化

于 2013-07-25T07:30:57.273 回答
0

在大多数编程语言中,对象没有名称。

于 2013-07-25T07:25:29.807 回答