是否可以在Objective-C中创建自定义指令?

前端之家收集整理的这篇文章主要介绍了是否可以在Objective-C中创建自定义指令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Objective-C有如下指令:

> @interface
> @implementation
> @end
> @protocol
> @property
> @synthesize

我认为这些东西就像复杂的marco或代码生成器.是否可以为代码生成目的创建自定义指令?一种可能的用途是为CoreData生成方法.

我没有想到,因为我从来没有见过任何关于它的东西,但我的世界不是世界.

后续问题:

Jonathan在下面提到可以编写自己的预处理器,这就引出了问题.目前,#define SYMBOLIC_CONSTANT 102将在文件移动到编译器之前用文件中的字符102替换字符SYMBOLIC_CONSTANT的所有实例.

我知道XCode你可以在Targets构建过程中添加“Run Script Phase”.因此,我可以编写一个脚本来查找我的自定义预处理指令,如’$coredata’,然后让脚本生成一个新文件,其中字符$coredata替换为某些代码字符.但根据我对XCode构建过程的理解,您无法将更改的文件提供给编译器源代码阶段.这些文件由IDE指定并锁定.

有没有人做过类似的事情?我知道外部构建系统是可能的,但说实话,我不是那种理解水平.我不知道Build and Run按钮的技术细节.

与此同时,我将开始阅读Apple的XCode文档……

谢谢你的回复

解决方法

你的想法是正确的:你的代码中不可能这样做.添加更多@ -directives的唯一方法是通过编译器本身.即使你遇到了所有麻烦,我几乎可以保证语法突出显示对它们的支持被硬编码到某个地方的 Xcode配置文件中.

哦,如果你考虑使用预处理器宏,我的理解是@字符在预处理器宏中是非法的.

编辑:我跑了一个测试,我是对的.在C预处理器宏中使用@字符是非法的.它们遵循与变量名称相同的规则.

猜你在找的C&C++相关文章