Mogenerator参数如何工作,我可以通过Xcode发送?
Mogenerator的帮助是非常小的。 所有的参数做什么?
通过命令行工具和Xcode工作的参数:
-
--base-class
:“私有类”(例如_MyObject.h
)将inheritance的基类的名字。 这也将以#import "MyManagedObject.h"
的forms添加到相同的.h
文件中。 提示:如果要从中inheritance的类位于库中,则默认导入语句将不起作用。 作为一种解决方法,您可以为每个创build的项目创build一个额外的inheritance级别,并让该类从库上inheritance(例如,将基类设置为您手动创build并从MyLibManagedObject
inheritance的MyLibManagedObject
)。 -
--template-path
:4个.motemplate
文件所在的path。 如果没有提供,则会查看所有“应用程序支持目录”(例如"/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
:文件的完整path,该文件将包含所有创build的.h
文件的所有#import
。 这个文件不需要存在(例如,如果没有的话,它将会被创build)。 此文件将不会自动包含在您的项目中。 您必须手动将其包含到项目的“组和文件”列表中。
因为将工作目录设置为系统的根目录之一(例如应用程序,开发人员,库或系统),所以在Xcode中使用相对path将无法工作。 (我还没有足够的时间来弄清楚究竟是哪一个。)
Xcode中无法使用的参数:
-
--model
:.xcdatamodel文件的path,不能在Xcode中设置。 -
--list-source-files
-
--orphaned
-
--versioned
-
--help
通过Xcode运行和发送参数到xmod:
(更新:我没有在Xcode 4上试过这个,只有Xcode 3.对于Xcode 4,你可以添加mogenerator作为构build阶段,而不是按照以下步骤。)
- 转到
.xcdatamodel
文件的信息页面。 - select评论标签。
- 将
xmod
添加到注释字段中,在它自己的行上。 - 每次保存模型时,都会为您重新生成机器文件。
要发送参数,它们必须在自己的行上:
这工作:
xmod --base-class CLASS --template-path PATH
甚至这个作品:
xmod --base-class CLASS --template-path PATH
但是,这是行不通的。
xmod --base-class CLASS --template-path PATH
注意:您必须closures“信息”窗口才能使设置生效。
从XCode 4开始,信息窗口不再可用,所以不要担心如果不能按照上面的回答进行设置。
使用John Blanco的指南来设置一个脚本目标,它允许您直接将命令行parameter passing给mogenerator。 请注意,您可能需要稍微调整其示例中的path…在脚本中抛出一个pwd
,并在脚本的工作目录中检查path(如果它不能立即运行)。
有关可用命令行参数的列表,请在terminal中运行mogenerator --help
。 AFAICT,他们都从脚本步骤工作。
如果想要在每个版本中自动重build机器文件,请参阅此答案 ,以通过“预执行”调用mogenerator的另一种方法。 把一个mogenerator脚本放入你的VCS也是一个很好的build议。
这是从1.27版本开始的–help的输出
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.
另外,也许会有所帮助。 用于确定哪些参数可用于
--template-var KEY=VALUE
打开* .motemplate文件,并find像“TemplateVar”string。 之后你会看到参数名称,并能够理解它做了什么。
这个参数有内置的模板
--template-var arc=true --template-var frc=true --template-var modules=true