Mogenerator的帮助很小。所有参数都做了什么?
答案 0 :(得分:144)
通过命令行实用程序和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
。此文件不需要存在(即如果不存在,将为您创建)。此文件不会自动为您包含在项目中。您必须通过将其拖入“群组”和“群组”中手动将其包含在内。项目的文件列表。在Xcode中使用上述任何参数的相对路径将不起作用,因为工作目录设置为系统的一个根目录(例如,应用程序,开发人员,库或系统)。 (我没有足够的时间弄清楚究竟是哪一个。)
Xcode中无法使用的参数:
--model
:无法在Xcode中设置.xcdatamodel文件的路径。--list-source-files
--orphaned
--versioned
--help
(更新:我没有在Xcode 4上试过这个,只有Xcode 3.对于Xcode 4,你可以add mogenerator as a build phase而不是按照以下步骤。)
.xcdatamodel
文件的信息页。xmod
添加到评论字段中,单独行。要发送参数,它们必须位于各自的行上:
这有效:
xmod
--base-class CLASS
--template-path PATH
即便如此:
xmod
--base-class CLASS --template-path PATH
但是,这不起作用:
xmod --base-class CLASS --template-path PATH
注意:您必须关闭“信息”窗口才能使设置生效。
答案 1 :(得分:6)
从XCode 4开始,“信息”窗口不再可用,因此如果您无法按照上面的说明进行设置,请不要担心。
使用John Blanco's guide设置脚本目标,该目标允许您将命令行参数直接传递给mogenerator。请注意,您可能需要稍微调整其示例中的路径...在脚本中抛出pwd
并检查脚本工作目录中的路径(如果它不会立即为您运行)。
有关可用命令行参数的列表,请在终端中运行mogenerator --help
。 AFAICT,所有这些都来自脚本步骤。
如果要在每次构建时自动重建机器文件,请参阅this answer以了解通过“预执行”调用mogenerator的其他方法。将mogenerator脚本放入VCS也有一个很好的建议。
答案 2 :(得分:1)
以下是--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.
答案 3 :(得分:0)
此外,也许会有所帮助。 用于确定哪些参数可用于
--template-var KEY=VALUE
打开* .motemplate文件,找到类似“TemplateVar”的字符串。在点之后,您将看到参数名称,并能够理解它的作用。
此params具有内置模板
--template-var arc=true
--template-var frc=true
--template-var modules=true