1

約 150 の .m および .h ファイルを含む Xcode 4 Objective-C プロジェクトがあります。プロジェクトの基礎となるコードは、基礎となるディスク構造において、Xcode プロジェクトに表示されるフォルダーに常に対応するとは限りません。私はその部分を取得します。

私が得られないのは、新しいプロジェクト グループを作成して項目を問題なく移動できる理由について、Xcode が何も教えてくれない理由ですが、特定の既存のプロジェクト フォルダーが原因でプロジェクトが破損し、コードが特定の .m ファイルまたは .h ファイルを別のグループに移動すると、ビルドされなくなりました。壊れていると、ファイルが赤で表示されます。これは苛立たしく、混乱を招きます。

以下のスクリーンショットでは、前の画像の左側が前の状態を示し、すべてが良好な場合、右側はグループに移動した後の赤い (行方不明の) ファイルを示しています。グループがディスク上のフォルダーを表していないことを考えると、あるグループから別のグループに移動すると問題が発生することはないと思います。そうすることもあれば、そうでないこともあります。この特定の XCode の問題は、私を大いに動揺させます。

Friendly Mac User-Interfaces の古き良き時代には、+Iを押してオブジェクトのプロパティに関する情報を取得したり、右クリックしてコンテキスト メニューから何かのプロパティにアクセスしたりできました。XCode プロジェクトのグループ (フォルダー アイコン) には、そのコンテキスト (右クリック メニュー) にプロパティ項目がありませんが、これらのグループは明らかにすべて同じではありません。これらの同じように見えるグループはどうなっていますか?

第二に、人はどのようにしてディスク上のフォルダー組織と視覚的なグループ組織の両方を再編成する方法を学びますか? (XCode 4 は、私が今まで使用した中で最も難しい IDE バージョンです。そのため、フォルダーやファイルなどの処理に関する重要なドキュメントを見逃していると確信しています。)

ここに画像の説明を入力

更新: File Inspector (Utilities メニューの Identity Inspector) がこのミステリーの鍵ですが、新しいユーザーがこれをどのように発見するのか (つらい経験以外では) はまだわかりません。また、パスドロップダウンでさまざまな選択肢が利用可能であり、説明やヘルプのない空白または空白以外の値、不可解なアイコンと実際の名前のいずれかのみで、これが何であるかをよく理解していません-disk-folder または None と表示されている灰色のテキスト フィールド:

ここに画像の説明を入力

4

1 に答える 1

3

この種のことは、突然起こるわけではありません。この場合、ユーザーが .xcodeproj を開き、グループが属することができるさまざまな相対または絶対パス オプションの違いを認識していないことが原因です。XCodeのグループは、その内部で定義されているモードまたはプロパティに関係なく、XCode プロジェクト内で常にまったく同じマニラ色のフォルダー アイコンで表示されます。

デフォルトでは、最も単純なケースは、XCode で新しいフォルダー グループ オブジェクトを作成することです。これは、ディスクの場所情報が格納されていない純粋に装飾的な整理ツールです。

これは、これらのグループが行う唯一のことではなく、これらのグループを使用できる唯一の「モード」でもありません。これらのグループは、いくつかのフォルダーを指して、「この仮想フォルダーにあるものは実際にはどこかにある」と言うためにも使用できます。それ以外の場合は、サブディレクトリ内のこのプロジェクトのメイン フォルダーの下、またはハード ドライブの別の場所に、相対パスまたは絶対パス形式で保存されます。」このように使用すると、デスクトップ上の Windows の「ショートカット」オブジェクトや、ファインダー内の Mac の「エイリアス」オブジェクトを思い出します。

あるグループから別のグループにファイルをドラッグしても、ディスク上の別のフォルダには移動しません。特定の名前のファイルへの参照を別のグループに移動するだけです。これは、ファイルをドラッグした後、実際には移動、コピー、または再配置していないことを意味する場合があります。実際のファイルに適切に解決できる場所から、解決できない場所へのエイリアス。したがって、XCode は、何が起こったのかについての役立つエラー メッセージを表示せずに、赤にします。

どのように修正しますか?この場合、[ユーティリティ] メニューの [ID インスペクタ] ペインに移動し、元の質問の図で「クラス」があった場所にある偽の値をクリアすることを決定します。XCode では、基本的にプロジェクトのルート フォルダーを見つけてそれを選択する必要があるため、無効な値をクリアするのは簡単ではありません。これにより、フォルダー グループの相対パスまたは絶対パス プロパティが「クリア」されます。

または、フォルダーをそのままにして、ファイルが参照する相対パスまたは絶対パスを最初に確認せずに、ファイルをグループ A からグループ B にドラッグしないでください。

XCode のチュートリアルでは、「XCode を使用してプロジェクトのコンテンツを管理し、XCode プロジェクト ディレクトリ内のファインダー内でファイルをドラッグするだけでなく」と指示されていますが、これは良いアドバイスですが、それは私が推測するように導きます。 XCode は完全かつ直感的な物理 (および仮想) グループ フォルダー編成ツールを提供します。そうではありません。例として、メインの XCode プロジェクト フォルダーの下にある 4 つの物理フォルダーに散在する .m ファイルと .h ファイルを含むプロジェクトを継承し、それらのファイルを移動したいとします。フォルダーを再編成するには、XCode 内で、およびターミナルまたは Finder で、トリッキーなことを組み合わせて実行する必要があります。それに加えて、選択したバージョン管理ツールでアイテムを移動することに伴う複雑さ、および XCode'

于 2013-02-07T20:19:28.137 に答える