我正在学习Objective-C和Cocoa.在Apple教程中,我正在编写一份附注说:
IBOutlet是一个空定义的宏,C预处理器在编译时删除.
我很好奇 - 什么是空定义的宏?
仅供参考,在这种特殊情况下,IBOutlet偶数存在的原因很简单,因此Interface Builder可以解析源文件并从中收集理解内容.这是一个线索(嗯,比线索更强一点),IBOutlet在设计UI时,前面的变量应该在Interface Builder中显示为Outlet.
空定义的宏是一个宏,它将被预处理器替换为任何内容(将被删除).它的作用是在代码中提供一些提示,例如:
#define IN #define OUT #define INOUT int myFunction(IN char *name, INOUT char *address, OUT char *phone);
这个声明表明它name是函数的输入变量,address既是输入也是输出,phone是输出变量.