我正在学习Objective-C和Cocoa。 在Apple教程中,我正在编写一份附注说:

IBOutlet是一个空定义的宏,C预处理器在编译时删除。

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

===============>>#1 票数:8

#define IBOutlet

每当在程序文本中使用IBOutlet时,它将被替换为任何内容。

===============>>#2 票数:8

仅供参考,在这种特殊情况下, IBOutlet甚至存在的原因很简单,即Interface Builder可以解析源文件并从中收集理解内容。 在设计UI时, IBOutlet前面的变量应该在Interface Builder中显示为Outlet,这是一个线索(嗯,比线索强一点)。

===============>>#3 票数:7

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

#define IN
#define OUT
#define INOUT

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

这个声明表明name是函数的输入变量, address是输入和输出, phone是输出变量。

===============>>#4 票数:0

另外 - 如果你不确定如何定义 - 命令双击它,Xcode将打开原始源文件中的定义。

===============>>#5 票数:0

哦,当我在它的时候。 双击选项将(尝试)打开双击符号的文档。

  ask by translate from so

未解决问题?本站智能推荐: