我正在学习objective-C和Cocoa。在我正在研究的 Apple 教程中,有一个旁注说:
IBOutlet
是一个空定义的宏,C 预处理器在编译时将其删除。
我很好奇 - 什么是空定义的宏?
我正在学习objective-C和Cocoa。在我正在研究的 Apple 教程中,有一个旁注说:
IBOutlet
是一个空定义的宏,C 预处理器在编译时将其删除。
我很好奇 - 什么是空定义的宏?
仅供参考,在这种特殊情况下,IBOutlet
even 存在的原因很简单,因为 Interface Builder 可以解析源文件并从中收集一些理解。IBOutlet
在设计 UI 时,前面的变量应该在 Interface Builder 中显示为 Outlet,这是一个线索(嗯,比线索强一点) 。
#define IBOutlet
每当在程序文本中使用 IBOutlet 时,它都将被替换为什么都没有。
空定义的宏是一个将被预处理器替换为任何内容(将被删除)的宏。它的作用是提示代码中的某些内容,例如:
#定义输入 #定义输出 #define INOUT int myFunction(IN char *name, INOUT char *address, OUT char *phone);
这个声明表明name
是函数的输入变量,address
既是输入又是输出,phone
是输出变量。
另外——如果你不确定是如何定义的——命令双击它,Xcode 将打开原始源文件中的定义。
哦,当我在它的时候。选项双击将(尝试)打开双击符号的文档。