Sen*_*ful 144

通过命令行实用程序和Xcode工作的参数:

  • --base-class:"私有类"(例如_MyObject.h)将继承的基类的名称.这也将以#import "MyManagedObject.h"同一.h文件的形式添加导入.提示:如果要继承的类位于库中,则默认的import语句将不起作用.作为一种变通方法,您可以为您创建的每个项目提供额外的继承级别,并使该类继承自库(例如,设置MyProjectManagedObject您手动创建并继承的基类MyLibManagedObject).
  • --template-path:4个.motemplate文件所在的路径.如果没有提供,则会查看所有"app support目录"(例如"/Library/Application Support/mogenerator/").
  • --template-group:template-path要使用的目录下的子目录名称.
  • --template-var arc=true:需要对生成的文件,而使用ARC进行编译.
  • --output-dir:所有生成文件的输出目录.
  • --machine-dir:_<class>.h_<class>.m将输出到的目录.如果还定义了--output-dir,则此参数优先.
  • --human-dir:<class>.h<class>.m将输出到的目录.如果还定义了--output-dir,则此参数优先.
  • --includem:文件的完整路径,其中包含所有已创建文件的#import所有.h文件.此文件不需要存在(即如果不存在,将为您创建).此文件不会自动为您包含在项目中.您必须通过将其拖动到项目的"组和文件"列表中手动包含它.

在Xcode中使用上述任何参数的相对路径将不起作用,因为工作目录设置为系统的一个根目录(例如,应用程序,开发人员,库或系统).(我没有足够的时间弄清楚其中哪一个确切.)

Xcode中无法使用的参数:

  • --model:无法在Xcode中设置.xcdatamodel文件的路径.
  • --list-source-files
  • --orphaned
  • --versioned
  • --help

通过Xcode运行并向xmod发送参数:

(更新:我没有尝试过Xcode 4,只有Xcode 3.对于Xcode 4,你可以添加mogenerator作为构建阶段,而不是按照以下步骤.)

  1. 转到.xcdatamodel文件的信息页面.
  2. 选择"注释"选项卡.
  3. 添加xmod到评论字段,在其自己的行上.
  4. 每次保存模型时,它都会为您重新生成机器文件.

要发送参数,它们必须位于各自的行上:

这有效:

xmod
--base-class CLASS
--template-path PATH
Run Code Online (Sandbox Code Playgroud)

甚至这个工作:

xmod
--base-class CLASS --template-path PATH
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用:

xmod --base-class CLASS --template-path PATH
Run Code Online (Sandbox Code Playgroud)

注意:您必须关闭"信息"窗口才能使设置生效.

  • 干得好,我会从项目的主页链接这个:-) (13认同)
  • 注意:如果您通过自制程序安装了mogenerator,它将位于/ usr/local/bin中,而不是Xcode的默认PATH.要使其工作,请添加`PATH = $ {PATH}:/ usr/local/bin`作为脚本的第一行. (2认同)
  • 可能值得添加`--template-var arc = true`,这是生成的代码与ARC一起使用所必需的 (2认同)

小智 6

从XCode 4开始,Info窗口不再可用,因此如果您无法按照上面的说明进行设置,请不要担心.

使用John Blanco的指南设置脚本目标,该目标允许您将命令行参数直接传递给mogenerator.请注意,您可能需要稍微调整其示例中的路径... pwd在脚本中抛出一个并检查脚本工作目录中的路径(如果它不会立即为您运行).

有关可用命令行参数的列表,请mogenerator --help在终端中运行.AFAICT,所有这些都是从脚本编写步骤开始的.

如果您希望在每次构建时自动重建机器文件,请参阅此答案,了解通过"预执行"调用mogenerator的另一种方法.将mogenerator脚本放入VCS也有一个很好的建议.