デフォルトでは、新しいObjCクラスを要求すると、Xcodeは.hと.mファイルの両方を作成します。 プロジェクトのどこかのC++ファイルを参照して、そのファイルを.hまたは.mファイルにインポートするまでは、すべてうまく動作します。ObjCファイルを作成することはありませんが、常にObjC++ファイルを作成することには欠点がありますか?
その時点で、ObjCコンパイラは完全に混乱し、エラーを解析して、あなたのユーザー(つまり:me)が私に当たるまではさらに混乱します。もちろん、そのファイルをObjC++ファイルにする必要があります。
オプションは次のとおりです。
- のtellそれは.mファイル であっても、この特定のファイルは、実際にObjC++ファイルであるXcodeの、または
- は、そのファイルが.mmして名前を変更します。そのファイルは本当ににかかわらず、プロジェクトはそれが何を考えてのにObjC++であるため、
最初のオプションは、私にとって非常においしいではありません。
2番目のオプションは、Gitリポジトリを壊してしまい、実際にはこの新しい「.mm」ファイルの履歴である別の.mファイルが存在することを「忘れている」という理由で良くありません。
Xcodeが私のために作成する.mファイルの名前を変更するには、まず最初に.mmファイルを作成してから履歴を失わないようにしてください。
これまでのところうまくいきましたが、ObjC++ファイルではなく、ObjCファイルが本当に必要なコーナーケースがあるかもしれません。
これらのコーナーケースは何ですか?誰もがC++リファレンスを含んでいないObjC++ファイルを認識していますが、.mmファイルであることによってObjCコンパイラを何らかの形で詰まらせるでしょうか?
また、欠点がない場合は、いつも.mの使用を非難し、永遠に.mmに固執するのはなぜですか?
それは素晴らしいアドバイスでした。新しい.mmテンプレートが次のXcodeアップデートで上書き/破棄されるのを避けるためのヒント? – verec
リンク先の記事に記載されている場所にあるユーザーテンプレートフォルダーにテンプレートを配置すると、将来のXcode更新でテンプレートが上書きされないようにすることができます。 –
ああ、私!ちょっと見落としました。どうもありがとうございます! – verec