Mogenerator 매개 변수는 어떻게 작동하며 Xcode를 통해 전송할 수 있습니까?
Mogenerator에 대한 도움은 매우 적습니다. 모든 매개 변수는 무엇을합니까?
명령 줄 유틸리티와 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
: .xcdatamodel 파일의 경로는 Xcode에서 설정할 수 없습니다.--list-source-files
--orphaned
--versioned
--help
Xcode를 통해 xmod에 매개 변수 실행 및 전송 :
(업데이트 : 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
참고 : 설정을 적용하려면 정보 창을 닫아야합니다.
XCode 4부터 정보 창을 더 이상 사용할 수 없으므로 위에서 답변 한대로 설정할 수 없더라도 걱정하지 마십시오.
사용 존 블랑코의 가이드는 당신이 mogenerator에 직접 명령 줄 인수를 전달 할 수있는 스크립트 목표를 설정합니다. 그의 예제에서 경로를 약간 조정해야 할 수도 있습니다 pwd
. 스크립트에 a 를 던져서 즉시 실행되지 않으면 스크립트의 작업 디렉토리와 경로를 확인하십시오.
사용 가능한 명령 줄 인수 목록을 보려면 mogenerator --help
터미널에서 실행 하십시오. AFAICT, 모두 스크립팅 단계에서 작동합니다.
모든 빌드에서 머신 파일을 자동으로 다시 빌드하려면 "사전 조치"를 통해 mogenerator를 호출하는 다른 방법에 대해서는 이 답변 을 참조하십시오 . 또한 VCS에 mogenerator 스크립트를 넣는 좋은 팁이 있습니다.
다음은 버전 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.
Also, maybe will be helpful. For determining which params can be used for
--template-var KEY=VALUE
open *.motemplate file, and find string like "TemplateVar." after point you will see parameter name and will able to understand what it do.
This params has built-in template
--template-var arc=true
--template-var frc=true
--template-var modules=true
'Programing' 카테고리의 다른 글
Python에서 가장 최근의 전 영업일 (0) | 2020.11.20 |
---|---|
UITableViewCell 문제의 가운데 맞춤 텍스트 (0) | 2020.11.20 |
Ubuntu 10.10 (Maverick Meerkat)에 Sun Java JDK를 설치하는 방법은 무엇입니까? (0) | 2020.11.20 |
문자열이 문자열로 시작하는지 테스트 하시겠습니까? (0) | 2020.11.20 |
STL 컨테이너를 필터링하는 현대적인 방법? (0) | 2020.11.20 |