什么是"空定义的宏"?

时间:2020-03-05 18:41:56  来源:igfitidea点击:

我正在学习Objective-C和可可粉。在Apple教程中,我正在做一个附带说明:

IBOutlet is a null-defined macro, which the C preprocessor removes at compile time.

我很好奇什么是空定义的宏?

解决方案

回答

#define IBOutlet

每当在程序文本中使用IBOutlet时,它将完全不替换。

回答

仅供参考,在这种特殊情况下,IBOutlet甚至存在的原因仅仅是为了让Interface Builder可以解析源文件并从中收集一些理解的信息。在设计UI时,有一个线索(很好,比线索要强一些),即在IBOutlet之前的变量应该在Interface Builder中显示为Outlet。

回答

空定义的宏是一个将被预处理器替换为任何东西(将被删除)的宏。它的作用是为代码中的某些内容提供提示,例如:

#define IN
#define OUT
#define INOUT

int myFunction(IN char *name, INOUT char *address, OUT char *phone);

该声明表明"名称"是函数的输入变量,"地址"既是输入也是输出,"电话"是输出变量。

回答

另外,如果不确定如何定义命令,请双击该命令,Xcode将在原始源文件中打开定义。

回答

哦,而我在这。双击选项将(尝试)打开双击符号的文档。