【发布时间】:2011-02-12 00:35:38
【问题描述】:
Objective-C 有如下指令:
- @接口
- @实现
- @end
- @协议
- @property
- @synthesize
我认为这些东西就像复杂的 marco 或代码生成器。是否可以为代码生成目的创建自定义指令?一种可能的用途是为 CoreData 生成方法。
我不这么认为,因为我从未见过任何关于它的东西,但我的世界不是世界。
后续问题:
Jonathan 在下面提到,可以编写自己的预处理器,这引出了如何做的问题。目前,#define SYMBOLIC_CONSTANT 102 将在文件移动到编译器之前将文件中字符 SYMBOLIC_CONSTANT 的所有实例替换为字符 102。
我知道 XCode,您可以将“运行脚本阶段”添加到 Targets 构建过程。所以我可以编写一个脚本来查找我的自定义预处理指令,如“$coredata”,然后让脚本生成一个新文件,其中字符 $coredata 替换为一些代码字符。但是根据我对 XCode 构建过程的了解,您无法将更改的文件输入到编译器源阶段。这些文件由 IDE 指定并锁定。
有没有人做过类似的事情?我知道使用外部构建系统是可能的,但老实说,我还没有达到那种理解水平。我不知道 Build and Run 按钮的技术细节。
与此同时,我将开始阅读 Apple 的 XCode 文档...
感谢您的回复!
【问题讨论】:
-
我并没有说这会很容易。但是,
$coredata之类的东西是一个有效的 C 预处理器标记($可以用在符号/宏名称中),所以它可以用在#define语句中。不过,再次重申,如果您告诉我们您的目标,我们或许可以建议一种更简单或更好的方法来解决问题。
标签: objective-c xcode