我正在学习Objective-C和Cocoa。在Apple教程中,我正在编写一份附注说:
IBOutlet
是一个空定义的宏,C预处理器在编译时删除。
我很好奇 - 什么是空定义的宏?
答案 0 :(得分:8)
#define IBOutlet
每当在程序文本中使用IBOutlet时,它都将被替换为任何内容。
答案 1 :(得分:8)
仅供参考,在这种特殊情况下,IBOutlet
甚至存在的原因只是让Interface Builder可以解析源文件并从中收集理解的内容。这是一个线索(好吧,比线索强一点),在设计UI时,IBOutlet
前面的变量应该在Interface Builder中显示为Outlet。
答案 2 :(得分:7)
一个空定义的宏是一个宏,它将由预处理器替换为任何内容(将被删除)。它的作用是在代码中提供一些提示,例如:
#define IN #define OUT #define INOUT int myFunction(IN char *name, INOUT char *address, OUT char *phone);
此声明表明name
是函数的输入变量,address
是输入和输出,phone
是输出变量。
答案 3 :(得分:0)
另外 - 如果你不确定如何定义 - 命令双击它,Xcode将打开原始源文件中的定义。
答案 4 :(得分:0)
哦,而我正在接受它。双击选项将(尝试)打开双击符号的文档。