Mogenerator的帮助非常小。所有参数都做什么?
Answers:
通过命令行实用程序和Xcode均可工作的参数:
--base-class
:基类的名称,“私有类”(例如_MyObject.h
)将继承自该基类。这还将以的形式将导入添加#import "MyManagedObject.h"
到同一.h
文件。提示:如果要继承的类位于库中,则默认的import语句将不起作用。作为一种解决方法,您可以为创建的每个项目增加一个继承级别,并使该类从库中继承(例如,设置要MyProjectManagedObject
手动创建并从其继承的基类MyLibManagedObject
)。--template-path
:这4个.motemplate
文件所在的路径。如果未提供此选项,它将查看所有“应用程序支持目录”(例如"/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
。该文件不需要存在(即如果不存在,将为您创建)。该文件不会自动为您包括在项目中。您必须通过将其拖动到项目的“组和文件”列表中来手动添加它。由于工作目录设置为系统的根目录之一(例如,Applications,Developer,Library或System),因此无法在Xcode中为上述任何参数使用相对路径。(我没有足够的时间弄清楚到底是哪一个。)
无法在Xcode中使用的参数:
--model
:.xcdatamodel文件的路径不能在Xcode中设置。--list-source-files
--orphaned
--versioned
--help
(更新:我没有在Xcode 4上尝试过此操作,仅在Xcode 3上尝试过。对于Xcode 4,您可以将mogenerator添加为构建阶段,而不是遵循以下步骤。)
.xcdatamodel
文件的信息页面。xmod
在注释行中添加一行。要发送参数,它们必须位于自己的行上:
这有效:
xmod
--base-class CLASS
--template-path PATH
甚至可以工作:
xmod
--base-class CLASS --template-path PATH
但是,这不起作用:
xmod --base-class CLASS --template-path PATH
注意:必须关闭“信息”窗口才能使设置生效。
PATH=${PATH}:/usr/local/bin
为脚本的第一行。
--template-var arc=true
生成的代码与ARC一起使用所需的值
从XCode 4开始,“信息”窗口不再可用,因此不必担心是否无法按照上面的回答进行设置。
使用John Blanco的指南来设置脚本目标,该目标可让您将命令行参数直接传递给mogenerator。请注意,您可能必须稍微调整他的示例中的路径...pwd
将脚本中的a扔掉,并针对脚本的工作目录检查路径,如果该脚本没有立即运行。
有关可用命令行参数的列表,请mogenerator --help
在终端中运行。AFAICT,所有这些都从脚本编写步骤开始工作。
见这个答案,如果你想每次构建自动重建机文件另一种方式来调用mogenerator通过“预动作”。将生成器脚本放入VCS中也有一个很好的技巧。
这是--help从1.27版开始的输出
mogenerator: Usage [OPTIONS] <argument> [...]
-m, --model MODEL Path to model
-C, --configuration CONFIG Only consider entities included in the named configuration
--base-class CLASS Custom base class
--base-class-import TEXT Imports base class as #import TEXT
--base-class-force CLASS Same as --base-class except will force all entities to have the specified base class. Even if a super entity exists
--includem FILE Generate aggregate include file for .m files for both human and machine generated source files
--includeh FILE Generate aggregate include file for .h files for human generated source files only
--template-path PATH Path to templates (absolute or relative to model path)
--template-group NAME Name of template group
--template-var KEY=VALUE A key-value pair to pass to the template file. There can be many of these.
-O, --output-dir DIR Output directory
-M, --machine-dir DIR Output directory for machine files
-H, --human-dir DIR Output directory for human files
--list-source-files Only list model-related source files
--orphaned Only list files whose entities no longer exist
--version Display version and exit
-h, --help Display this help and exit
Implements generation gap codegen pattern for Core Data.
Inspired by eogenerator.